一、下载anaconda
第一步当然是下载anaconda了,官方网站的下载需要用迅雷才能快点,或者直接到清华大学镜像站下载。当然这里推荐服务器之家下载,下载地址都整理好了
清华大学提供了镜像,从这个镜像下载速度很快,地址:
https://mirrors.tuna.tsinghua.edu.cn/help/anaconda/
选择相应的版本进行下载就好
下载过程中除了安装位置外,还有两个需要确认的地方。
第一个勾是是否把anaconda加入环境变量,这涉及到能否直接在cmd中使用conda、jupyter、ipython等命令,推荐打勾,如果不打勾话问题也不大,可以在之后使用anaconda提供的命令行工具进行操作;第二个是是否设置anaconda所带的python 3.6为系统默认的python版本,这个自己看着办,问题不大。
一路安装完成以后,就可以打开cmd测试一下安装结果。
分别输入python、ipython、conda、jupyter notebook等命令,会看到相应的结果,说明安装成功。(python是进入python交互命令行;ipython是进入ipython交互命令行,很强大;conda是anaconda的配置命令;jupyter notebook则会启动web端的ipython notebook)
需要注意的是jupyter notebook命令会在电脑本地以默认配置启动jupyter服务,之后会再谈到这个。
anaconda安装成功之后,我们需要修改其包管理镜像为国内源。
二、配置镜像地址,否则从官方网站下载升级文件太慢
安装完成后,找到anaconda prompt,加入镜像地址,完成配置:
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --set show_channel_urls yes
在 windows 上,会随 anaconda 一起安装一批应用程序:
- anaconda navigator,它是用于管理环境和包的 gui
- anaconda prompt 终端,它可让你使用命令行界面来管理环境和包
- spyder,它是面向科学开发的 ide
为了避免报错,我推荐在默认环境下更新所有的包。打开 anaconda prompt (或者 mac 下的终端),键入:
conda upgrade --all
并在提示是否更新的时候输入 y(yes)以便让更新继续。初次安装下的软件包版本一般都比较老旧,因此提前更新可以避免未来不必要的问题。
管理包
安装了 anaconda 之后,管理包是相当简单的。要安装包,请在终端中键入 conda install package_name
。例如,要安装 numpy,请键入 conda install numpy
。
你还可以同时安装多个包。类似 conda install numpy scipy pandas
的命令会同时安装所有这些包。还可以通过添加版本号(例如 conda install numpy=1.10
)来指定所需的包版本。
conda 还会自动为你安装依赖项。例如,scipy 依赖于 numpy,因为它使用并需要 numpy。如果你只安装 scipy (conda install scipy),则 conda 还会安装 numpy(如果尚未安装的话)。
大多数命令都是很直观的。要卸载包,请使用 conda remove package_name
。要更新包,请使用 conda update package_name
。如果想更新环境中的所有包(这样做常常很有用),请使用 conda update --all
。最后,要列出已安装的包,请使用前面提过的 conda list
。
如果不知道要找的包的确切名称,可以尝试使用 conda search search_term
进行搜索。例如,我知道我想安装 beautiful soup,但我不清楚确切的包名称。因此,我尝试执行 conda search beautifulsoup
。
搜索 beautifulsoup
它返回可用的 beautiful soup 包的列表,并列出了相应的包名称 beautifulsoup4。
管理环境
如前所述,你可以使用 conda 创建环境以隔离项目。要创建环境,请在终端中使用 conda create -n env_name list of packages。在这里,-n env_name 设置环境的名称(-n 是指名称),而 list of packages 是要安装在环境中的包的列表。例如,要创建名为 my_env 的环境并在其中安装 numpy,请键入 conda create -n my_env numpy
。
创建环境时,可以指定要安装在环境中的 python 版本。这在你同时使用 python 2.x 和 python 3.x 中的代码时很有用。要创建具有特定 python 版本的环境,请键入类似于 conda create -n py3 python=3
或 conda create -n py2 python=2
的命令。实际上,我在我的个人计算机上创建了这两个环境。我将它们用作与任何特定项目均无关的通用环境,以处理普通的工作(可轻松使用每个 python 版本)。这些命令将分别安装 python 3 和 python 2 的最新版本。要安装特定版本(例如 python 3.3),请使用 conda create -n py python=3.3
。
进入环境
创建了环境后,在 osx/linux 上使用 source activate my_env
进入环境。在 windows 上,请使用 activate my_env
。
进入环境后,你会在终端提示符中看到环境名称,它类似于 (my_env) ~ $。环境中只安装了几个默认的包,以及你在创建它时安装的包。你可以使用 conda list 检查这一点。在环境中安装包的命令与前面一样:conda install package_name
。不过,这次你安装的特定包仅在你进入环境后才可用。要离开环境,请键入 source deactivate
(在 osx/linux 上)。在 windows 上,请使用 deactivate
。
保存和加载环境
共享环境这项功能确实很有用,它能让其他人安装你的代码中使用的所有包,并确保这些包的版本正确。你可以使用 conda env export > environment.yaml 将包保存为 yaml。命令的第一部分 conda env export 用于输出环境中的所有包的名称(包括 python 版本)。
将导出的环境输出到终端中
上图中,你可以看到环境的名称和所有依赖项及其版本。导出命令的第二部分 > environment.yaml 将导出的文本写入到 yaml 文件 environment.yaml 中。现在可以共享此文件,而且其他人能够用于创建和你项目相同的环境。
要通过环境文件创建环境,请使用 conda env create -f environment.yaml。这会创建一个新环境,而且它具有同样的在 environment.yaml 中列出的库。
列出环境
如果忘记了环境的名称(我有时会这样),可以使用 conda env list
列出你创建的所有环境。你会看到环境的列表,而且你当前所在环境的旁边会有一个星号。默认的环境(即当你不在选定环境中时使用的环境)名为 root。
删除环境
如果你不再使用某些环境,可以使用 conda env remove -n env_name
删除指定的环境(在这里名为 env_name)。
使用环境
对我帮助很大的一点是,我的 python 2 和 python 3 具有独立的环境。我使用了 conda create -n py2 python=2 和 conda create -n py3 python=3 创建两个独立的环境,即 py2 和 py3。现在,我的每个 python 版本都有一个通用环境。在所有这些环境中,我都安装了大多数标准的数据科学包(numpy、scipy、pandas 等)。
我还发现,为我从事的每个项目创建环境很有用。这对于与数据不相关的项目(例如使用 flask 开发的 web 应用)也很有用。例如,我为我的个人博客(使用 pelican)创建了一个环境。
共享环境
在 github 上共享代码时,最好同样创建环境文件并将其包括在代码库中。这能让其他人更轻松地安装你的代码的所有依赖项。对于不使用 conda 的用户,我通常还会使用 pip freeze(在此处了解详情)将一个 pip requirements.txt 文件导出并包括在其中。
继续补充一点:
配置完成,可以愉快地玩耍了。
输入:conda list
查看安装了那些包
测试一下:
切换当前环境:
当前是python3,如果切换到2.7,则输入
conda create -n python2 python=2.7
输入:
activate python2
完成环境切换
补充:
conda常用命令
查看当前系统下的环境
conda info -e
创建新的环境
# 指定python版本为2.7
conda create -n python2 python=2.7
# 同时安装必要的包
conda create -n python2 numpy matplotlib python=2.7
环境切换
# linux/mac下需要使用source activate python2
activate python2
#退出环境
deactivate python2
移除环境
conda remove -n python2 --all
因为篇幅原因,具体的使用可以参考下面的文章