PYTHON编程环境管理的必备利器——ANACONDA

时间:2022-03-25 09:00:30

文章属个人原创,转载请著名出处。
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,感兴趣的读者可以移步官网了解。