Python学习利器——我的小白 Anaconda安装之路
序
Python易用,但用好却不易,其中比较头疼的就是包管理和Python不同版本的问题,特别是当你使用Windows的时候。为了解决这些问题,有不少发行版的Python,比如WinPython、Anaconda、pycharm等,这些发行版将python和许多常用的package打包,方便pythoners直接使用,此外,还有virtualenv、pyenv等工具管理虚拟环境。
个人尝试了很多类似的发行版,最终选择了Anaconda,因为其强大而方便的包管理与环境管理的功能。该文主要介绍下Anaconda,对Anaconda的理解,并简要总结下相关的操作。
一、为什么选择Anaconda?
1.1 什么是 Anaconda?
Anaconda是专注于数据分析的Python发行版本,包含了conda、Python等190多个科学包及其依赖项。作为好奇宝宝的你是不是发现了一个新名词 conda,那么你一定会问 conda 又是什么呢?
1.2 什么是 conda ?
conda 是开源包(packages)和虚拟环境(environment)的管理系统。
packages 管理: 可以使用 conda 来安装、更新 、卸载工具包 ,并且它更关注于数据科学相关的工具包。在安装 anaconda 时就预先集成了像 Numpy、Scipy、 pandas、Scikit-learn 这些在数据分析中常用的包。另外值得一提的是,conda 并不仅仅管理Python的工具包,它也能安装非python的包。比如在新版的 Anaconda 中就可以安装R语言的集成开发环境 Rstudio。
虚拟环境管理: 在conda中可以建立多个虚拟环境,用于隔离不同项目所需的不同版本的工具包,以防止版本上的冲突。对纠结于 Python 版本的同学们,我们也可以建立 Python2 和 Python3 两个环境,来分别运行不同版本的 Python 代码。
知道 是什么(what) 的同时,我们也需要问一问 为什么(why)。那么,为什么要选择用Anaconda呢?
1.3 Anaconda 的优点?
Anaconda的优点总结起来就八个字:省时省心、分析利器。
省时省心: Anaconda通过管理工具包、开发环境、Python版本,大大简化了你的工作流程。不仅可以方便地安装、更新、卸载工具包,而且安装时能自动安装相应的依赖包,同时还能使用不同的虚拟环境隔离不同要求的项目。
分析利器: 在 Anaconda 官网中是这么宣传自己的:适用于企业级大数据分析的Python工具。其包含了720多个数据科学相关的开源包,在数据可视化、机器学习、深度学习等多方面都有涉及。不仅可以做数据分析,甚至可以用在大数据和人工智能领域。
解决了 是什么 以及 为什么 的问题后,下面让我们看一下 怎么做(How)。
二、如何安装Anaconda?
Anaconda的下载页参见官网,Linux、Mac、Windows均支持。
也可以通过清华大学镜像下载Anaconda镜像,可以加快下载速度。
安装时,会发现有不同版本的Anaconda,分别对应Python2.7和Python3.5,两个版本其实除了这点区别外其他都一样。后面我们会看到,安装哪个版本并不本质,因为通过环境管理,我们可以很方便地切换运行时的Python版本。(由于需要安装TensorFlow,TensorFlow需要用到Python3.5,因此倾向于直接安装Python3.5对应的Anaconda4.2.0)
浏览器打开镜像链接后,会出现这个图片图片描述找到适合自己的电脑型号下载。安装时一直点next就行啦。
当出现下面这张图时,就已经安装了Anaconda图片描述
下载后直接按照说明安装即可。这里想提醒一点:尽量按照Anaconda默认的行为安装——不使用root权限,仅为个人安装,安装目录设置在个人主目录下(Windows就无所谓了)。这样的好处是,同一台机器上的不同用户完全可以安装、配置自己的Anaconda,不会互相影响。
根据提示进行安装,完成后你大概会惊讶地发现电脑中多了好多应用,不用担心,我们一项项来看:
Anaconda Navigator :用于管理工具包和环境的图形用户界面,后续涉及的众多管理命令也可以在 Navigator中手工实现。
Jupyter notebook :基于web的交互式计算环境,可以编辑易于人们阅读的文档,用于展示数据分析的过程。
qtconsole:一个可执行 IPython 的仿终端图形界面程序,相比 Python Shell 界面,qtconsole
可以直接显示代码生成的图形,实现多行代码输入执行,以及内置许多有用的功能和函数。spyder:一个使用Python语言、跨平台的、科学运算集成开发环境。
对于Mac、Linux系统,Anaconda安装好后,实际上就是在主目录下多了个文件夹(~/anaconda)而已,Windows会写入注册表。安装时,安装程序会把bin目录加入PATH(Linux/Mac写入~/.bashrc,Windows添加到系统变量PATH),这些操作也完全可以自己完成。以Linux/Mac为例,安装完成后设置PATH的操作是
# 将anaconda的bin目录加入PATH,根据版本不同,也可能是~/anaconda3/bin
echo 'export PATH="~/anaconda2/bin:$PATH"' >> ~/.bashrc
# 更新bashrc以立即生效
source ~/.bashrc
安装完成后,我们还需要对所有工具包进行升级,以避免可能发生的错误。打开你电脑的终端,在Anaconda Prompt中输入:
conda upgrade --all
在终端询问是否安装如下升级版本时,输入 y。
至此,安装完成,下面让我们看一下如何用 Anaconda 管理工具包和环境。
三、如何管理Python包?
安装一个 package:
conda install package_name
这里 package_name 是需要安装包的名称。你也可以同时安装多个包,比如同时安装numpy 、scipy 和 pandas,则执行如下命令:
conda install numpy scipy pandas
你也可以指定安装的版本,比如安装 1.1 版本的 numpy :
conda install numpy=1.10
移除一个 package:
conda remove package_name
升级 package 版本:
conda update package_name
查看所有的 packages:
conda list
如果你记不清 package 的具体名称,也可以进行模糊查询:
conda search search_term
四、如何管理Python环境?
默认的环境是 root,你也可以创建一个新环境:
conda create -n env_name list of packages
其中 -n 代表 name,env_name 是需要创建的环境名称,list of packages 则是列出在新环境中需要安装的工具包。
例如,当我安装了 Python3 版本的 Anaconda 后,默认的 root 环境自然是 Python3,但是我还需要创建一个 Python 2 的环境来运行旧版本的 Python 代码,最好还安装了 pandas 包,于是我们运行以下命令来创建:
conda create -n py2 python=2.7 pandas
细心的你一定会发现,py2 环境中不仅安装了 pandas,还安装了 numpy 等一系列 packages,这就是使用 conda 的方便之处,它会自动为你安装相应的依赖包,而不需要你一个个手动安装。
进入名为 env_name 的环境:
source activate env_name
退出当前环境:
source deactivate
另外注意,在 Windows 系统中,使用 activate env_name 和 deactivate 来进入和退出某个环境。
删除名为 env_name 的环境:
conda env remove -n env_name
显示所有的环境:
conda list
当分享代码的时候,同时也需要将运行环境分享给大家,执行如下命令可以将当前环境下的 package 信息存入名为 environment 的 YAML 文件中。
conda env export > environment.yaml
同样,当执行他人的代码时,也需要配置相应的环境。这时你可以用对方分享的 YAML 文件来创建一摸一样的运行环境。
conda env create -f environment.yaml
常用操作
# 创建一个名为python27的环境,指定Python版本是2.7(不用管是2.7.x,conda会为我们自动寻找2.7.x中的最新版本)
conda create --name python27 python=2.7
# 安装好后,使用activate激活某个环境
activate python27
# 激活后,会发现terminal输入的地方多了python27的字样,实际上,此时系统做的事情就是把默认3.5环境从PATH中去除,再把2.7对应的命令加入PATH
# 此时,再次输入
python --version
# 可以得到`Python 2.7.5 :: Anaconda 4.2.0 (64-bit)`,即系统已经切换到了2.7的环境
# 如果想返回默认的python 3.5环境,运行
deactivate python34
# 删除一个已有的环境
conda remove --name python34 --all
至此,你已跨入 Anaconda 的大门,后续就可以徜徉在 Python 的海洋中了。
安装Anaconda给我的经验总结:
一,一定要自己先按照教程琢磨,把文章一字不漏看完,连评论也要看,也许评论留言里就有你要解决的办法。最后实在还是解决不了只好咨询他人了,因为再自己瞎捉摸不得要领只会让你想放弃。
(当然啦咨询别人的前提是你自己的确有努力研究想办法解决但还是不成功。你自己有研究过,这样别人一指点你,一来你听的懂,两人没有沟通障碍;二来也许他人的一句话就把你混乱的思路缕清了,你就好像看见自己出错的点在哪了。)
二,自己多动手实践几次,把自己实践错误的地方记录下来,解决办法也记录下来,最好形成笔记。
余欣博士说:“我记得当年我去百度实习的时候,导师对我的第一个建议是,每天都要做日志,记录学到的东西和遇到的问题以及解决办法。这是一个非常好的习惯,特别是对程序员来说。”