Anaconda 介绍、安装、使用及常用命令(macOS  Wi

2018-11-15  本文已影响499人  Jefitar

1. 初步认识 Anaconda

Anaconda 是一个用于科学计算的Python发行版,支持 Linux, Mac, Windows系统,提供了包管理与环境管理的功能,可以很方便地解决多版本python并存、切换以及各种第三方包安装问题。Anaconda 利用工具/命令 conda 来进行 package 和 environment 的管理,并且已经包含了Python和相关的配套工具。

这里先解释下conda、anaconda这些概念的差别,详细差别见下节。

进入下文之前,说明一下conda的设计理念——conda将几乎所有的工具、第三方包都当做package对待,甚至包括python和conda自身!因此,conda打破了包管理与环境管理的约束,能非常方便地安装各种版本python、各种package并方便地切换。

2. Anaconda、conda、pip、virtualenv的区别

2.1. Anaconda

Anaconda是一个包含180+的科学包及其依赖项的发行版本。其包含的科学包包括:conda, numpy, scipy, ipython notebook等。

2.2. conda

conda是包及其依赖项环境的管理工具。

2.3. pip

2.4 virtualenv

2.5. pip 与 conda 比较

2.5.1. 依赖项检查

2.5.2. 环境管理

2.5.3. 对系统自带Python的影响

2.5.4. 适用语言

2.6. conda与pip、virtualenv的关系

conda结合了pip和virtualenv的功能。

3. 安装 Anaconda

3.1. macOS

3.1.1. 系统环境

系统版本:macOS Mojave 10.14
已装 python:python2.7.10 python3.7.0
已装其他工具:pip pip3 qt5 pyqt5


python.png
others.png

3.1.2. 安装

Anaconda is the most popular Python data science platform. See https://www.anaconda.com/downloads/.
By default, this installer modifies your bash profile to activate the base environment of Anaconda3 when your shell starts up. To disable this, choose "Customize" at the "Installation Type" phase, and disable the "Modify PATH" option. If you decline this option, the executables installed by this installer will not be available on PATH. You will need to use the full executable path to run commands, or otherwise initialize the base environment of Anaconda3 on your own.
To install to a different location, select "Change Install Location..." at the "Installation Type" phase, then choose "Install on a specific disk...", choose the disk you wish to install on, and click "Choose Folder...". The "Install for me only" option will install Anaconda3 to the default location, ~/anaconda3.
The packages included in this installation are:

  • alabaster 0.7.11
  • anaconda 5.3.0
  • anaconda-client 1.7.2
  • anaconda-navigator 1.9.2
  • anaconda-project 0.8.2
  • appdirs 1.4.3
  • appnope 0.1.0
  • appscript 1.0.1
  • asn1crypto 0.24.0
  • astroid 2.0.4
  • astropy 3.0.4
  • atomicwrites 1.2.1
  • attrs 18.2.0
  • automat 0.7.0
  • babel 2.6.0
  • backcall 0.1.0
  • backports 1.0
  • backports.shutil_get_terminal_size 1.0.0
  • beautifulsoup4 4.6.3
  • bitarray 0.8.3
  • bkcharts 0.2
  • blas 1.0
  • blaze 0.11.3
  • bleach 2.1.4
  • blosc 1.14.4
  • bokeh 0.13.0
  • boto 2.49.0
  • bottleneck 1.2.1
  • bzip2 1.0.6
  • ca-certificates 2018.03.07
  • certifi 2018.8.24
  • cffi 1.11.5
  • chardet 3.0.4
  • click 6.7
  • cloudpickle 0.5.5
  • clyent 1.2.2
  • colorama 0.3.9
  • conda 4.5.11
  • conda-build 3.15.1
  • conda-env 2.6.0
  • constantly 15.1.0
  • contextlib2 0.5.5
  • cryptography 2.3.1
  • curl 7.61.0
  • cycler 0.10.0
  • cython 0.28.5
  • cytoolz 0.9.0.1
  • dask 0.19.1
  • dask-core 0.19.1
  • datashape 0.5.4
  • dbus 1.13.2
  • decorator 4.3.0
  • defusedxml 0.5.0
  • distributed 1.23.1
  • docutils 0.14
  • entrypoints 0.2.3
  • et_xmlfile 1.0.1
  • expat 2.2.6
  • fastcache 1.0.2
  • filelock 3.0.8
  • flask 1.0.2
  • flask-cors 3.0.6
  • freetype 2.9.1
  • get_terminal_size 1.0.0
  • gettext 0.19.8.1
  • gevent 1.3.6
  • glib 2.56.2
  • glob2 0.6
  • gmp 6.1.2
  • gmpy2 2.0.8
  • greenlet 0.4.15
  • h5py 2.8.0
  • hdf5 1.10.2
  • heapdict 1.0.0
  • html5lib 1.0.1
  • hyperlink 18.0.0
  • icu 58.2
  • idna 2.7
  • imageio 2.4.1
  • imagesize 1.1.0
  • incremental 17.5.0
  • intel-openmp 2019.0
  • ipykernel 4.9.0
  • ipython 6.5.0
  • ipython_genutils 0.2.0
  • ipywidgets 7.4.1
  • isort 4.3.4
  • itsdangerous 0.24
  • jbig 2.1
  • jdcal 1.4
  • jedi 0.12.1
  • jinja2 2.10
  • jpeg 9b
  • jsonschema 2.6.0
  • jupyter 1.0.0
  • jupyter_client 5.2.3
  • jupyter_console 5.2.0
  • jupyter_core 4.4.0
  • jupyterlab 0.34.9
  • jupyterlab_launcher 0.13.1
  • keyring 13.2.1
  • kiwisolver 1.0.1
  • lazy-object-proxy 1.3.1
  • libcurl 7.61.0
  • libcxx 4.0.1
  • libcxxabi 4.0.1
  • libedit 3.1.20170329
  • libffi 3.2.1
  • libgfortran 3.0.1
  • libiconv 1.15
  • libpng 1.6.34
  • libsodium 1.0.16
  • libssh2 1.8.0
  • libtiff 4.0.9
  • libxml2 2.9.8
  • libxslt 1.1.32
  • llvmlite 0.24.0
  • locket 0.2.0
  • lxml 4.2.5
  • lzo 2.10
  • markupsafe 1.0
  • matplotlib 2.2.3
  • mccabe 0.6.1
  • mistune 0.8.3
  • mkl 2019.0
  • mkl-service 1.1.2
  • mkl_fft 1.0.4
  • mkl_random 1.0.1
  • more-itertools 4.3.0
  • mpc 1.1.0
  • mpfr 4.0.1
  • mpmath 1.0.0
  • msgpack-python 0.5.6
  • multipledispatch 0.6.0
  • navigator-updater 0.2.1
  • nbconvert 5.4.0
  • nbformat 4.4.0
  • ncurses 6.1
  • networkx 2.1
  • nltk 3.3.0
  • nose 1.3.7
  • notebook 5.6.0
  • numba 0.39.0
  • numexpr 2.6.8
  • numpy 1.15.1
  • numpy-base 1.15.1
  • numpydoc 0.8.0
  • odo 0.5.1
  • olefile 0.46
  • openpyxl 2.5.6
  • openssl 1.0.2p
  • packaging 17.1
  • pandas 0.23.4
  • pandoc 1.19.2.1
  • pandocfilters 1.4.2
  • parso 0.3.1
  • partd 0.3.8
  • path.py 11.1.0
  • pathlib2 2.3.2
  • patsy 0.5.0
  • pcre 8.42
  • pep8 1.7.1
  • pexpect 4.6.0
  • pickleshare 0.7.4
  • pillow 5.2.0
  • pip 10.0.1
  • pkginfo 1.4.2
  • pluggy 0.7.1
  • ply 3.11
  • prometheus_client 0.3.1
  • prompt_toolkit 1.0.15
  • psutil 5.4.7
  • ptyprocess 0.6.0
  • py 1.6.0
  • pyasn1 0.4.4
  • pyasn1-modules 0.2.2
  • pycodestyle 2.4.0
  • pycosat 0.6.3
  • pycparser 2.18
  • pycrypto 2.6.1
  • pycurl 7.43.0.2
  • pyflakes 2.0.0
  • pygments 2.2.0
  • pylint 2.1.1
  • pyodbc 4.0.24
  • pyopenssl 18.0.0
  • pyparsing 2.2.0
  • pyqt 5.9.2
  • pysocks 1.6.8
  • pytables 3.4.4
  • pytest 3.8.0
  • pytest-arraydiff 0.2
  • pytest-astropy 0.4.0
  • pytest-doctestplus 0.1.3
  • pytest-openfiles 0.3.0
  • pytest-remotedata 0.3.0
  • python 3.7.0
  • python-dateutil 2.7.3
  • python.app 2
  • pytz 2018.5
  • pywavelets 1.0.0
  • pyyaml 3.13
  • pyzmq 17.1.2
  • qt 5.9.6
  • qtawesome 0.4.4
  • qtconsole 4.4.1
  • qtpy 1.5.0
  • readline 7.0
  • requests 2.19.1
  • rope 0.11.0
  • ruamel_yaml 0.15.46
  • scikit-image 0.14.0
  • scikit-learn 0.19.2
  • scipy 1.1.0
  • seaborn 0.9.0
  • send2trash 1.5.0
  • service_identity 17.0.0
  • setuptools 40.2.0
  • simplegeneric 0.8.1
  • singledispatch 3.4.0.3
  • sip 4.19.8
  • six 1.11.0
  • snappy 1.1.7
  • snowballstemmer 1.2.1
  • sortedcollections 1.0.1
  • sortedcontainers 2.0.5
  • sphinx 1.7.9
  • sphinxcontrib 1.0
  • sphinxcontrib-websupport 1.1.0
  • spyder 3.3.1
  • spyder-kernels 0.2.6
  • sqlalchemy 1.2.11
  • sqlite 3.24.0
  • statsmodels 0.9.0
  • sympy 1.2
  • tblib 1.3.2
  • terminado 0.8.1
  • testpath 0.3.1
  • tk 8.6.8
  • toolz 0.9.0
  • tornado 5.1
  • tqdm 4.26.0
  • traitlets 4.3.2
  • twisted 18.7.0
  • unicodecsv 0.14.1
  • unixodbc 2.3.7
  • urllib3 1.23
  • wcwidth 0.1.7
  • webencodings 0.5.1
  • werkzeug 0.14.1
  • wheel 0.31.1
  • widgetsnbextension 3.4.1
  • wrapt 1.10.11
  • xlrd 1.1.0
  • xlsxwriter 1.1.0
  • xlwings 0.11.8
  • xlwt 1.3.0
  • xz 5.2.4
  • yaml 0.1.7
  • zeromq 4.2.5
  • zict 0.1.3
  • zlib 1.2.11
  • zope 1.0
  • zope.interface 4.5.0

如上文所示,anaconda将安装很多包,其中标红的为目前我比较熟悉的包,如果不用anaconda,这些包得一个个手动安装,anoconda真是好用啊!

  • Anaconda Navigtor :用于管理工具包和环境的图形用户界面,后续涉及的众多管理命令也可以在 Navigator 中手工实现。
  • Jupyter notebook :基于web的交互式计算环境,可以编辑易于人们阅读的文档,用于展示数据分析的过程。
  • qtconsole :一个可执行 IPython 的仿终端图形界面程序,相比 Python Shell 界面,qtconsole 可以直接显示代码生成的图形,实现多行代码输入执行,以及内置许多有用的功能和函数。
  • spyder :一个使用Python语言、跨平台的、科学运算集成开发环境。


    image.png

查看安装路径:


image.png

3.1.3. 配置

3.1.3.1. 环境变量

Anaconda 安装好后,会自动在 ~/.bash_profile 中添加 anaconda 的环境变量,如下:


image.png

因此只需要source一下即可。
anaconda安装之后,source之前,先看一下当前的python:
默认 python 为 python2:


image.png
使用 python3 需使用 python3 指令:
image.png

我们来source 一下:


image.png
默认 python 变为 python3,且是 anaconda 自带的 python3:
image.png
3.1.3.2. 修改conda镜像源

如不修改conda的镜像源,99.99%会报http链接失败的错误(网友踩坑经验)。
输入以下两条命令来添加清华源:

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --set show_channel_urls yes

此时你的 ~ 目录下会生成隐藏文件 .condarc:


image.png

内容如下:


image.png
删除其中的第1行、第4行(建议只删第一行,原因请见3.1.3.3节),最终版本文件如下:
image.png

用命令

conda info 

查看当前配置信息,channel URLs 字段内容内容如下,即修改成功。


image.png

若未删除第4行,则还会有默认的镜像源:


image.png

3.1.3.3. python2 python3 切换

conda info

查看配置信息,默认镜像源已恢复:


image.png

重新创建python3.7环境,成功:


image.png
image.png
使用如下命令,查看当前有哪些环境:
conda info -e
image.png

星号表示当前激活的环境。
激活py37环境:

source activate py37
或
conda activate py37
image.png
conda create -n py27 python=2.7
或
conda create --name py27 python=2.7
image.png

创建成功:


image.png

Anaconda 图形界面也显示了 py27:


image.png

激活py27环境:

conda activate py27
image.png

3.2. Windows 10

前往 anaconda官网,选择版本(建议 Python 3.7),下载 :

anaconda_win.png

3.2.1. 安装

安装请参考 http://www.cnblogs.com/IT-LearnHall/p/9486029.html

3.2.2. 配置

3.2.2.1. 配置环境变量

右键“此电脑”,依次点击“属性”->"高级系统设置"->"环境变量",双击“用户变量“中的path:


image.png

点击”新建“,新增两个环境变量:

C:\Users\sille\Anaconda3
C:\Users\sille\Anaconda3\Scripts
image.png

点击确定。
打开终端,输入

conda --version

正确显示版本号,则环境变量设置成功:


image.png

3.2.2.2. 更改镜像源

同mac版,请见3.1.3.2.节。

3.2.2.3. (命令方式)创建 python3.7环境

查看当前有哪些环境:

conda info -e
或
conda info --envs

只有一个base环境:


zhi'yu

打开 Anaconda 图形界面,同样显示只有一个环境——base(root):


image.png
输入以下命令,创建python3.7环境:
conda create -n py37 python=3.7
或
conda create --name py37 python=3.7

失败了,提示当前镜像源找不到python3.7的包。


image.png

原因是:在上一节更改镜像源的时候,删掉了 -defaults 这一行,导致默认镜像源被去掉了,只保留了新增的清华镜像源,这一镜像源可能对于较新的包更新较慢。
解决方法:打开 C:\Users\用户名下的隐藏文件 .condarc,增加 -defaults 这一行,如下图所示。


image.png
输入命令,查看当前镜像源:
conda info

可见,默认镜像源已经添加进来:


image.png

再次执行命令,创建python3.7环境:

conda create -n py37 python=3.7
image.png
image.png

至此,python3.7环境已经创建完成。
打开 anaconda 图形界面,也可以看到刚创建的py37:


image.png
激活 py37环境:
activate py37

激活成功后,终端前面的括号中会显示环境名。
查看当前环境的python版本:

python --version
image.png

查看安装了哪些包:

conda list
image.png

3.2.2.4. (图形界面)创建 python2.7环境

4. 使用

4.1. 在指定环境下载指定包

image.png

5. 常用命令

5.1. 管理环境

5.1.1. 打开anaconda的anaconda prompt查看当前环境:

conda info -e
或
conda info --envs

5.1.2. 创建一个名为py27新的环境,并指定运行环境为python2.7

conda create -n py27 python=2.7
或
conda create --name py27 python=2.7

5.1.3. 显示已创建的环境

conda info --envs
# 或
conda info -e
# 或
conda env list
image.png

5.1.4. 激活及退出环境

conda activate py27
或
source activate py27

windows:

activate py27

以macOS 为例:


image.png
conda deactivate
或
source deactivate

windows:

deactivate

以 macOS 为例:


image.png

当执行"退出当前环境",回到root环境命令后,原本行首以“(env_name)”或“[env_name]”开头的字符将不再显示。

5.1.5. 复制环境

conda create --name new_env_name --clone copied_env_name

注意:

5.1.6. 删除环境

conda remove --name env_name --all

env_name> 为被删除环境的名称。

5.2. 管理包

5.4. 检查新环境下的python版本以及在创建环境时conda自动安装了那些必须的包

#查看python版本
python --version

#查看安装了那些包
conda list
#或者
conda list -n python27
上一篇 下一篇

猜你喜欢

热点阅读