文章属个人原创,转载请著名出处。
anaconda 官网 在这里
随着python丰富多样,性能强大的第三方包不断地扩展着python的生态圈,对于做数据分析/数据挖掘/机器学习的同学来说,python已经成为他们常用必备的语言之一。但对于初学者和数据科学家来说,各种第三方包的安装,选择 python2.x 还是 python3.x这些问题都严重影响到python的使用体验(例如:如果你要安装pandas,就需要scipy和numpy的依赖)。毕竟有时候,我只想做几分钟的数据分析,实在不想耗上半天去搞懂用distutils,setuptools,distribute,disutils2,distlib 还是 pip 。
anaconda的产生就非常完美优雅地解决了python平台管理,第三方包管理等等的问题
(对distutils,setuptools,distribute,disutils2,distlib,pip感兴趣的可以去这里看看)
1. 用conda来管理多个python平台
试想一下,你用以前在python2.x上面写好的爬虫抓网页,分析的时候却发现用来分析的工具只支持python3.x,但正常情况下,单机对python的安装是不能2.x和3.x并存的。实现多个不同版本python平台的管理和切换,正是anaconda的强大功能之一。
1.1 部署和管理不同版本的python
已安装anaconda的读者进入linux终端(或者windows的命令窗)可以通过下述指令来实现新的python环境的构建
$ conda create -n py27 python=2.7 anaconda
无论是安装了anaconda2 还是anaconda3 的朋友都可以通过上述指令安装一个叫做py2(可根据个人爱好命名) python版本是2.7的python编程环境。“anaconda”是相当于完全创建一个完整的anaconda环境(包含所有anaconda默认的科学计算等一系列的包,体量比较大。)
同理,要安装python3.5的环境输入下述指令即可
$ conda create -n py35 python=3.5
这里就只是单纯地安装了一个python3.5的环境。
在 “conda create”指令的时候可以添加后缀 “anaconda”或者“biopython”可以创建一个基本科学计算功能完备的环境。但缺点是体量比较大。
1.2 不同python环境之间的切换
假设我们通过上一步已经创建了Zootopia2_7 和 Zootopia3_4 两个环境,要进入其中一个环境我们应该如何操作呢?
首先,我们可以查看当前系统下有哪些环境
$ conda info --env
返回结果如下:
Using Anaconda Cloud api site https://api.anaconda.org
# conda environments:
#
Zootopia2_7 /home/390672/anaconda3/envs/Zootopia2_7
Zootopia3_4 /home/390672/anaconda3/envs/Zootopia3_4
root * /home/390672/anaconda3
root环境在linux下是可以直接使用管理的,但在windows平台下却是无法管理的,请注意。
好了,我们看到已经存在Zootopia2_7 和 Zootopia3_4 两个环境,可以使用下面指令进入其中一个环境
linux版本
$ source activate Zootopia2_7
windows版本
> activate Zootopia2_7
此处以linux版本为例,环境被激活后会在当前linux用户前面增加环境前缀(Zootopia2_7)
(Zootopia2_7)[390672@W39-390033 ~]$
1.3 复制和删除环境
1.3.1 复制环境
如果现在想在已有环境Zootopia2_7的基础上新建一个环境,在新环境中进一步扩展第三方包,可以采用复制的策略:
用到的指令跟创建环境非常相近,就是在最后加上 –clone (环境名)
conda create --name nickhome --clone Zootopia2_7
上面的指令完成了一个Zootopia2_7的复制,复制后的环境叫做nickhome。
1.3.2 删除已有的环境
如果现在想删除已有的python环境,可以采用删除指令:
例如下面代码演示了如何删除nickhome环境
conda remove --name nickhome --all
#
2. 用anaconda进行python工具包管理
上述用anaconda或biopython创建的环境,虽然基本能够满足python做数据分析/机器学习等需求,但有时候还需要继续扩增第三方工具包。那么使用“conda install”指令便可以满足需求。
2.1 查看当前环境下安装的python工具包
通过在shell窗口输入 conda list
$ conda list
# packages in environment at /home/390672/anaconda3/envs/Zootopia2_7:
#
openssl 1.0.2h 1
pip 8.1.2 py27_0
python 2.7.12 1
readline 6.2 2
setuptools 25.1.6 py27_0
sqlite 3.13.0 0
tk 8.5.18 0
wheel 0.29.0 py27_0
zlib 1.2.8 3
可以看到当前环境下所安装的python及其工具包。
2.2 在当前环境下新增python工具包
新安装python的工具包分两种情况,从 Anaconda官方下载 和 非Anaconda官方下载。
2.2.1 Anaconda官方下载
进入到相应的环境后,输入
$ conda install beautiful-soup
可以使用anaconda官方提供的 beautiful-soup 工具包进行安装。
2.2.2 非Anaconda官方下载
要在anaconda官网查找一个工具包,可以通过 “conda search”。例如要查找 numpy :
$ conda search numpy
如果需要的包在anaconda官网都找不到,那么可以用 pip 来安装。首先,激活你想要安装工具包的环境。然后输入
$ pip install pydub
pydub工具包在anaconda官网找不到,但pip上有,因此可以通过这样的方式下载安装到当前的python环境中
2.3 删除python工具包
对于已安装的工具包,可以用 conda remove 来移除。
例如要移除 scipy 可以输入:
$ conda remove --name Zootopia2_7 scipy
或者进入到相应环境下直接移除
$ source activate Zootopia2_7
$ conda remove scipy
2.4 更新python或工具包
要对整个 Zootopia2_7 环境更新,可以输入:
$ conda update Zootopia2_7
要对当前环境下的 scipy 更新,可以输入:
$ conda update scipy
要更新python的版本可以输入:
$ conda update python
总结
除了优雅地进行python平台管理 和 第三方包安装管理,anaconda还提供了强大的python代码编译调试工具——jupyter notebook 和 spyder,感兴趣的读者可以移步官网了解。