爬蟲 (三) anaconda3 入門

  • 2019 年 12 月 10 日
  • 筆記

我們知道安裝 anaconda3 之後會出現一下幾個東東,我們來簡單的了解下

1. Anaconda Navigtor :用於管理工具包和環境的圖形用戶界面,後續涉及的眾多管理命令也可以在 Navigator 中手工實現

2. Jupyter notebook :基於web的交互式計算環境,可以編輯易於人們閱讀的文檔,用於展示數據分析的過程

3. spyder :一個使用Python語言、跨平台的、科學運算集成開發環境

4. qtconsole :一個可執行 IPython 的仿終端圖形界面程序,相比 Python Shell 界面,qtconsole 可以直接顯示代碼生成的圖形,實現多行代碼輸入執行,以及內置許多有用的功能和函數

01

conda –version

上面這個命令主要用於查詢 anaconda3 的版本號,現在讓我們按住鍵盤 (Win + R),回車(enter),便會出現一個控制台,我們輸入 conda –version

conda --version

02

activate

activate 能將我們引入anaconda設定的虛擬環境中, 如果你後面什麼參數都不加那麼會進入anaconda自帶的base環境,

你可以輸入python試試, 這樣會進入base環境的python解釋器, 如果你把原來環境中的python環境去除掉會更能體會到, 這個時候在命令行中使用的已經不是你原來的python而是base環境下的python.而命令行前面也會多一個(base) 說明當前我們處於的是base環境下

03

conda create -n learn python=3

conda create -n learn python=3

我們當然不滿足一個base環境, 我們應該為自己的程序安裝單獨的虛擬環境.

創建一個名稱為learn的虛擬環境並指定python版本為3(這裡conda會自動找3中最新的版本下載)

04

conda activate learn

切換環境

conda activate learn

推出環境

conda deactivate

05

conda env list

conda env list

去查看所有的環境

現在的learn環境除了python自帶的一些官方包之外是沒有其他包的, 一個比較乾淨的環境我們可以試試

06

conda install package

conda install requests

or

pip install requests

07

conda list

要查看當前環境中所有安裝了的包可以用

07

conda env export > environment.yaml

如果想要導出當前環境的包信息可以用

conda env export > environment.yaml
name: base  channels:    - defaults  dependencies:    - _ipyw_jlab_nb_ext_conf=0.1.0=py37_0    - alabaster=0.7.12=py37_0    - anaconda=2019.10=py37_0    - anaconda-client=1.7.2=py37_0    - anaconda-navigator=1.9.7=py37_0    - anaconda-project=0.8.3=py_0    - asn1crypto=1.0.1=py37_0    - astroid=2.3.1=py37_0    - astropy=3.2.1=py37he774522_0    - atomicwrites=1.3.0=py37_1    - attrs=19.2.0=py_0    - babel=2.7.0=py_0    - backcall=0.1.0=py37_0    - backports=1.0=py_2    - backports.functools_lru_cache=1.5=py_2    - backports.os=0.1.1=py37_0    - backports.shutil_get_terminal_size=1.0.0=py37_2    - backports.tempfile=1.0=py_1    - backports.weakref=1.0.post1=py_1    - beautifulsoup4=4.8.0=py37_0    - bitarray=1.0.1=py37he774522_0    - bkcharts=0.2=py37_0    - blas=1.0=mkl    - bleach=3.1.0=py37_0    - blosc=1.16.3=h7bd577a_0    - bokeh=1.3.4=py37_0    - boto=2.49.0=py37_0    - bottleneck=1.2.1=py37h452e1ab_1    - bzip2=1.0.8=he774522_0    - ca-certificates=2019.8.28=0    - certifi=2019.9.11=py37_0    - cffi=1.12.3=py37h7a1dbc1_0    - chardet=3.0.4=py37_1003    - click=7.0=py37_0    - cloudpickle=1.2.2=py_0    - clyent=1.2.2=py37_1    - colorama=0.4.1=py37_0    - comtypes=1.1.7=py37_0    - conda=4.7.12=py37_0    - conda-build=3.18.9=py37_3    - conda-env=2.6.0=1    - conda-package-handling=1.6.0=py37h62dcd97_0    - conda-verify=3.4.2=py_1    - console_shortcut=0.1.1=3    - contextlib2=0.6.0=py_0    - cryptography=2.7=py37h7a1dbc1_0    - curl=7.65.3=h2a8f88b_0    - cycler=0.10.0=py37_0    - cython=0.29.13=py37ha925a31_0    - cytoolz=0.10.0=py37he774522_0    - dask=2.5.2=py_0    - dask-core=2.5.2=py_0    - decorator=4.4.0=py37_1    - defusedxml=0.6.0=py_0    - distributed=2.5.2=py_0    - docutils=0.15.2=py37_0    - entrypoints=0.3=py37_0    - et_xmlfile=1.0.1=py37_0    - fastcache=1.1.0=py37he774522_0    - filelock=3.0.12=py_0    - flask=1.1.1=py_0    - freetype=2.9.1=ha9979f8_1    - fsspec=0.5.2=py_0    - future=0.17.1=py37_0    - get_terminal_size=1.0.0=h38e98db_0    - gevent=1.4.0=py37he774522_0    - glob2=0.7=py_0    - greenlet=0.4.15=py37hfa6e2cd_0    - h5py=2.9.0=py37h5e291fa_0    - hdf5=1.10.4=h7ebc959_0    - heapdict=1.0.1=py_0    - html5lib=1.0.1=py37_0    - icc_rt=2019.0.0=h0cc432a_1    - icu=58.2=ha66f8fd_1    - idna=2.8=py37_0    - imageio=2.6.0=py37_0    - imagesize=1.1.0=py37_0    - importlib_metadata=0.23=py37_0    - intel-openmp=2019.4=245    - ipykernel=5.1.2=py37h39e3cac_0    - ipython=7.8.0=py37h39e3cac_0    - ipython_genutils=0.2.0=py37_0    - ipywidgets=7.5.1=py_0    - isort=4.3.21=py37_0    - itsdangerous=1.1.0=py37_0    - jdcal=1.4.1=py_0    - jedi=0.15.1=py37_0    - jinja2=2.10.3=py_0    - joblib=0.13.2=py37_0    - jpeg=9b=hb83a4c4_2    - json5=0.8.5=py_0    - jsonschema=3.0.2=py37_0    - jupyter=1.0.0=py37_7    - jupyter_client=5.3.3=py37_1    - jupyter_console=6.0.0=py37_0    - jupyter_core=4.5.0=py_0    - jupyterlab=1.1.4=pyhf63ae98_0    - jupyterlab_server=1.0.6=py_0    - keyring=18.0.0=py37_0    - kiwisolver=1.1.0=py37ha925a31_0    - krb5=1.16.1=hc04afaa_7    - lazy-object-proxy=1.4.2=py37he774522_0    - libarchive=3.3.3=h0643e63_5    - libcurl=7.65.3=h2a8f88b_0    - libiconv=1.15=h1df5818_7    - liblief=0.9.0=ha925a31_2    - libpng=1.6.37=h2a8f88b_0    - libsodium=1.0.16=h9d3ae62_0    - libssh2=1.8.2=h7a1dbc1_0    - libtiff=4.0.10=hb898794_2    - libxml2=2.9.9=h464c3ec_0    - libxslt=1.1.33=h579f668_0    - llvmlite=0.29.0=py37ha925a31_0    - locket=0.2.0=py37_1    - lxml=4.4.1=py37h1350720_0    - lz4-c=1.8.1.2=h2fa13f4_0    - lzo=2.10=h6df0209_2    - m2w64-gcc-libgfortran=5.3.0=6    - m2w64-gcc-libs=5.3.0=7    - m2w64-gcc-libs-core=5.3.0=7    - m2w64-gmp=6.1.0=2    - m2w64-libwinpthread-git=5.0.0.4634.697f757=2    - markupsafe=1.1.1=py37he774522_0    - matplotlib=3.1.1=py37hc8f65d3_0    - mccabe=0.6.1=py37_1    - menuinst=1.4.16=py37he774522_0    - mistune=0.8.4=py37he774522_0    - mkl=2019.4=245    - mkl-service=2.3.0=py37hb782905_0    - mkl_fft=1.0.14=py37h14836fe_0    - mkl_random=1.1.0=py37h675688f_0    - mock=3.0.5=py37_0    - more-itertools=7.2.0=py37_0    - mpmath=1.1.0=py37_0    - msgpack-python=0.6.1=py37h74a9793_1    - msys2-conda-epoch=20160418=1    - multipledispatch=0.6.0=py37_0    - navigator-updater=0.2.1=py37_0    - nbconvert=5.6.0=py37_1    - nbformat=4.4.0=py37_0    - networkx=2.3=py_0    - nltk=3.4.5=py37_0    - nose=1.3.7=py37_2    - notebook=6.0.1=py37_0    - numba=0.45.1=py37hf9181ef_0    - numexpr=2.7.0=py37hdce8814_0    - numpy=1.16.5=py37h19fb1c0_0    - numpy-base=1.16.5=py37hc3f5095_0    - numpydoc=0.9.1=py_0    - olefile=0.46=py37_0    - openpyxl=3.0.0=py_0    - openssl=1.1.1d=he774522_2    - packaging=19.2=py_0    - pandas=0.25.1=py37ha925a31_0    - pandoc=2.2.3.2=0    - pandocfilters=1.4.2=py37_1    - parso=0.5.1=py_0    - partd=1.0.0=py_0    - path.py=12.0.1=py_0    - pathlib2=2.3.5=py37_0    - patsy=0.5.1=py37_0    - pep8=1.7.1=py37_0    - pickleshare=0.7.5=py37_0    - pillow=6.2.0=py37hdc69c19_0    - pip=19.2.3=py37_0    - pkginfo=1.5.0.1=py37_0    - pluggy=0.13.0=py37_0    - ply=3.11=py37_0    - powershell_shortcut=0.0.1=2    - prometheus_client=0.7.1=py_0    - prompt_toolkit=2.0.10=py_0    - psutil=5.6.3=py37he774522_0    - py=1.8.0=py37_0    - py-lief=0.9.0=py37ha925a31_2    - pycodestyle=2.5.0=py37_0    - pycosat=0.6.3=py37hfa6e2cd_0    - pycparser=2.19=py37_0    - pycrypto=2.6.1=py37hfa6e2cd_9    - pycurl=7.43.0.3=py37h7a1dbc1_0    - pyflakes=2.1.1=py37_0    - pygments=2.4.2=py_0    - pylint=2.4.2=py37_0    - pyodbc=4.0.27=py37ha925a31_0    - pyopenssl=19.0.0=py37_0    - pyparsing=2.4.2=py_0    - pyqt=5.9.2=py37h6538335_2    - pyreadline=2.1=py37_1    - pyrsistent=0.15.4=py37he774522_0    - pysocks=1.7.1=py37_0    - pytables=3.5.2=py37h1da0976_1    - pytest=5.2.1=py37_0    - pytest-arraydiff=0.3=py37h39e3cac_0    - pytest-astropy=0.5.0=py37_0    - pytest-doctestplus=0.4.0=py_0    - pytest-openfiles=0.4.0=py_0    - pytest-remotedata=0.3.2=py37_0    - python=3.7.4=h5263a28_0    - python-dateutil=2.8.0=py37_0    - python-libarchive-c=2.8=py37_13    - pytz=2019.3=py_0    - pywavelets=1.0.3=py37h8c2d366_1    - pywin32=223=py37hfa6e2cd_1    - pywinpty=0.5.5=py37_1000    - pyyaml=5.1.2=py37he774522_0    - pyzmq=18.1.0=py37ha925a31_0    - qt=5.9.7=vc14h73c81de_0    - qtawesome=0.6.0=py_0    - qtconsole=4.5.5=py_0    - qtpy=1.9.0=py_0    - requests=2.22.0=py37_0    - rope=0.14.0=py_0    - ruamel_yaml=0.15.46=py37hfa6e2cd_0    - scikit-image=0.15.0=py37ha925a31_0    - scikit-learn=0.21.3=py37h6288b17_0    - scipy=1.3.1=py37h29ff71c_0    - seaborn=0.9.0=py37_0    - send2trash=1.5.0=py37_0    - setuptools=41.4.0=py37_0    - simplegeneric=0.8.1=py37_2    - singledispatch=3.4.0.3=py37_0    - sip=4.19.8=py37h6538335_0    - six=1.12.0=py37_0    - snappy=1.1.7=h777316e_3    - snowballstemmer=2.0.0=py_0    - sortedcollections=1.1.2=py37_0    - sortedcontainers=2.1.0=py37_0    - soupsieve=1.9.3=py37_0    - sphinx=2.2.0=py_0    - sphinxcontrib=1.0=py37_1    - sphinxcontrib-applehelp=1.0.1=py_0    - sphinxcontrib-devhelp=1.0.1=py_0    - sphinxcontrib-htmlhelp=1.0.2=py_0    - sphinxcontrib-jsmath=1.0.1=py_0    - sphinxcontrib-qthelp=1.0.2=py_0    - sphinxcontrib-serializinghtml=1.1.3=py_0    - sphinxcontrib-websupport=1.1.2=py_0    - spyder=3.3.6=py37_0    - spyder-kernels=0.5.2=py37_0    - sqlalchemy=1.3.9=py37he774522_0    - sqlite=3.30.0=he774522_0    - statsmodels=0.10.1=py37h8c2d366_0    - sympy=1.4=py37_0    - tbb=2019.4=h74a9793_0    - tblib=1.4.0=py_0    - terminado=0.8.2=py37_0    - testpath=0.4.2=py37_0    - tk=8.6.8=hfa6e2cd_0    - toolz=0.10.0=py_0    - tornado=6.0.3=py37he774522_0    - tqdm=4.36.1=py_0    - traitlets=4.3.3=py37_0    - unicodecsv=0.14.1=py37_0    - urllib3=1.24.2=py37_0    - vc=14.1=h0510ff6_4    - vs2015_runtime=14.16.27012=hf0eaf9b_0    - wcwidth=0.1.7=py37_0    - webencodings=0.5.1=py37_1    - werkzeug=0.16.0=py_0    - wheel=0.33.6=py37_0    - widgetsnbextension=3.5.1=py37_0    - win_inet_pton=1.1.0=py37_0    - win_unicode_console=0.5=py37_0    - wincertstore=0.2=py37_0    - winpty=0.4.3=4    - wrapt=1.11.2=py37he774522_0    - xlrd=1.2.0=py37_0    - xlsxwriter=1.2.1=py_0    - xlwings=0.15.10=py37_0    - xlwt=1.3.0=py37_0    - xz=5.2.4=h2fa13f4_4    - yaml=0.1.7=hc54c509_2    - zeromq=4.3.1=h33f27b4_3    - zict=1.0.0=py_0    - zipp=0.6.0=py_0    - zlib=1.2.11=h62dcd97_3    - zstd=1.3.7=h508b16e_0  prefix: D:Anaconda3

導入信息

conda env create -f environment.yaml

08

more

activate // 切換到base環境    activate learn // 切換到learn環境    conda create -n learn python=3 // 創建一個名為learn的環境並指定python版本為3(的最新版本)    conda env list // 列出conda管理的所有環境    conda list // 列出當前環境的所有包    conda install requests 安裝requests包    conda remove requests 卸載requets包    conda remove -n learn --all // 刪除learn環境及下屬所有包    conda update requests 更新requests包    conda env export > environment.yaml // 導出當前環境的包信息    conda env create -f environment.yaml // 用配置文件創建新的虛擬環境

08

與 pyCharm 鏈接

在工作環境中我們會集成開發環境去編碼, 這裡推薦JB公司的pycharm, 而pycharm也能很方便的和anaconda的虛擬環境結合

Setting => Project => Project Interpreter 裏面修改 Project Interpreter , 點擊齒輪標誌再點擊Add Local為你某個環境的python.exe解釋器就行了

比如你要在learn環境中編寫程序, 那麼就修改為D:SoftwareAnacondaenvslearn, 可以看到這時候下面的依賴包也變成了learn環境中的包了.接下來我們就可以在pycharm中愉快的編碼了.

結語

現在你是不是發現用上anaconda就可以十分優雅簡單的解決上面所提及的單個python環境所帶來的弊端了呢, 而且也明白了其實這一切的實現並沒有那麼神奇.

當然anaconda除了包管理之外還在於其豐富數據分析包, 不過那就是另一個內容了, 我們先學會用anaconda去換一種方法管里自己的開發環境, 這已經是一個很大的進步了