序python
Python易用,但用好却不易,其中比较头疼的就是包管理和Python不一样版本的问题,特别是当你使用Windows的时候。为了解决这些问题,有很多发行版的Python,好比WinPython、Anaconda、pycharm等,这些发行版将python和许多经常使用的package打包,方便pythoners直接使用,此外,还有virtualenv、pyenv等工具管理虚拟环境。程序员
我的尝试了不少相似的发行版,最终选择了Anaconda,由于其强大而方便的包管理与环境管理的功能。该文主要介绍下Anaconda,对Anaconda的理解,并简要总结下相关的操做。web
1.1 什么是 Anaconda?浏览器
Anaconda是专一于数据分析的Python发行版本,包含了conda、Python等190多个科学包及其依赖项。做为好奇宝宝的你是否是发现了一个新名词 conda,那么你必定会问 conda 又是什么呢?bash
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的下载页参见官网,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 管理工具包和环境。
安装一个 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
默认的环境是 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 的海洋中了。
一,必定要本身先按照教程琢磨,把文章一字不漏看完,连评论也要看,也许评论留言里就有你要解决的办法。最后实在仍是解决不了只好咨询他人了,由于再本身瞎捉摸不得要领只会让你想放弃。
(固然啦咨询别人的前提是你本身的确有努力研究想办法解决但仍是不成功。你本身有研究过,这样别人一指点你,一来你听的懂,两人没有沟通障碍;二来也许他人的一句话就把你混乱的思路缕清了,你就好像看见本身出错的点在哪了。)
二,本身多动手实践几回,把本身实践错误的地方记录下来,解决办法也记录下来,最好造成笔记。
余欣博士说:“我记得当年我去百度实习的时候,导师对个人第一个建议是,天天都要作日志,记录学到的东西和遇到的问题以及解决办法。这是一个很是好的习惯,特别是对程序员来讲。”