用Anaconda配置多Python开发环境

最近在学习机器学习,同时在看阿西莫夫的《银河帝国》系列小说。其实我很久之前就不打算看虚构类的书了,但我有情调又有生活品味的女朋友是个科幻迷,在她的怂恿下我试着开始看这系列小说,正好出野外,看这种不太费脑的书也合适。不看不要紧,看着看着就被阿西莫夫只比银河系略大的脑洞震撼到了,看到引人入胜的情节,不禁拍手叫好赞叹不已。

前 7 本(基地系列)快看完了,最近萌生了用机器学习的方法将其分析一下的想法,于是从昨晚开始捣鼓。然后发现 Python 2 存在编码问题,对于中文的支持十分不友好,让我感觉无从下手。请教了Clark Yu,他建议我装一个 Python 3 与现在的 Anaconda 2 并存,Python 3 就不存在 2 的编码问题。于是我 Google 加动手,建了一个 Python 3 的环境,现在将用Anaconda配置多Python开发环境的方法整理记录下来。

在配置之前,我的 Windows 里装了 Anaconda 2,是 Python 2 的一个发行版,它里面包含了一个叫 conda 的包,这个包就是配置多 Python 开发环境的关键。

准备工作

在开始配置多 Python 开发环境前,首先电脑上有 conda,因为我之前装了 Anaconda 2,所以电脑上已经有了。

然后要检查 conda 版本:

1
conda --version

然后检查一下是不是最新版,如果不是,升级到最新版:

1
conda update conda

完成上述,就可以创建新环境啦。

创建新环境

使用 conda 创建新环境的方法如下:

1
2
3
4
5
# 基于 python3 创建一个名为 py3 的环境
conda create --name py3 python=3

# 基于 python2 创建一个名为 py2 的环境
conda create --name py2 python=2.7

或者要创建 Anaconda 环境:

1
2
3
4
5
# 基于 python3 创建一个名为 py3 的环境
conda create -n py3 python=3 anaconda

# 基于 python2 创建一个名为 py2 的环境
conda create -n py2 python=2 anaconda

这样我就有了一个名字为 py3 的 Python 3 环境和一个叫 py2 的 Python 2 环境。

激活环境

如何激活环境呢?

1
2
3
# 激活 test 环境
activate py2 # windows
source activate py2 # linux/mac

要注意的是此命令要在 CMD 命令提示符下才有效,亲测在 PowerShell 下无法顺利激活环境。

切换环境

好了,知道如何激活了,那如何切换到另外一个环境呢(py2 to py3)?也很简单:

1
2
# 切换到python3
activate py3

如要切换到 root 环境,则:

1
deactivate

查看所在环境

建立了几个 Python 开发环境,那么如何查看都有哪些?

1
conda info -e

这会列出所有环境,标有*号的是现在所在环境。

在激活环境下安装包

conda 的包管理功能是对 pip 的一种补充,如果当前已经激活了某个Python环境,那么就可以在当前环境开始安装第三方包。

1
2
3
4
5
6
7
8
# 安装 matplotlib 
conda install matplotlib
# 查看已安装的包
conda list
# 包更新
conda update matplotlib
# 删除包
conda remove matplotlib

对于那些用 pip 无法安装成功的模块你都可以尝试用 conda 来安装,如果用 conda 找不到相应的包,当然你继续选择 pip 来安装包也是没问题的。

删除环境

如果想删除一个环境,怎么操作?

1
conda remove -n py2 --all

这样,就形成了一套完美的配置多 Python 开发环境方案。以后遇到新操作再补充咯。