史上最全的Python包管理工具Anaconda教程

常见问题 admin 发布时间:2024-04-01 浏览:280 次

  

事实上Anaconda和Jupyternotebook已成为数据分析的标准环境。  

简单来说,Anaconda是包管理器和环境管理器,Jupyternotebook可以将数据分析的代码、图像和文档全部组合到一个web文档中。  

接下来我详细介绍下Anaconda,并在最后给出Jupyternotebook:  

1.Anaconda是什么?  

2.如何安装?  

3.如何管理包?  

4.如何管理环境?  

5.Jupyternotebook如何快速上手?  

不过在开始前我需要强调下,下面的步骤你要亲自跟着敲一遍并在自己的电脑上实践。虽然下面你会遇到很多命令,给了谁都记不住的。但是别怕,也别中途放弃,因为你没必要记住命令,因为当你在后面学习数据分析用的多了,自然就记住了。  

记不住也没关系,学会在哪查找就可以了。你只需要跟着上面步骤操作下,并理解了每一步是干什么的就可以了。后面遇到要做的事情,忘记了回头查这个文档就可以了。  

刚开始学习的过程会遇到困难,只要中途不放弃,自己实际操作一遍,我保证你可以熟练上手。  

1.Anaconda是什么?  

Anaconda在英文中是“蟒蛇”,有首歌就叫《Anaconda》,表示像蟒蛇一样性感妖娆的身体。  

所有你看下面Anaconda的图标就像一个收尾互相咬住的“蟒蛇”。  

 

你可能已经安装了Python,那么为什么还需要Anaconda?有以下3个原因:  

1)Anaconda附带了一大批常用数据科学包,它附带了conda、Python和150多个科学包及其依赖项。因此你可以立即开始处理数据。  

2)管理包  

Anaconda是在conda(一个包管理器和环境管理器)上发展出来的。  

在数据分析中,你会用到很多第三方的包,而conda(包管理器)可以很好的帮助你在计算机上安装和管理这些包,包括安装、卸载和更新包。  

3)管理环境  

为什么需要管理环境呢?比如你在A项目中用了Python2,而新的项目B老大要求使用Python3,而同时安装两个Python版本可能会造成许多混乱和错误。这时候conda就可以帮助你为不同的项目建立不同的运行环境。  

还有很多项目使用的包版本不同,比如不同的pandas版本,不可能同时安装两个Numpy版本,你要做的应该是,为每个Numpy版本创建一个环境,然后项目的对应环境中工作。这时候conda就可以帮你做到。  

2.如何安装Anaconda?  

Anaconda可用于多个平台(Windows、MacOSX和Linux)。你可以在下面地址上找到安装程序和安装说明。根据你的操作系统是32位还是64位选择对应的版本下载。  

(Anaconda已经不支持WindowsXP;同时查看自己电脑是32位还是64位,不要装错了。)  

 

Anaconda的下载文件比较大(约500MB),因为它附带了Python中最常用的数据科学包。  

如果计算机上已经安装了Python,安装不会对你有任何影响。实际上,脚本和程序使用的默认Python是Anaconda附带的Python。  

注意:如果你是windows10系统,注意在安装Anaconda软件的时候,右击安装软件→选择以管理员的身份运行。  

运行.jpg

完成安装后,如果你是在windows上操作,按下面图打开AnacondaPrompt(或者Mac下的终端),后面我会将AnacondaPrompt统一称为“终端”。  

终端.jpg

注意:如果你是windows10系统,按下图操作  

操作详情.jpg

如果win10系统没有按上述操作,后面会报下面的错误信息:  

报错信息.jpg 

可以在终端或命令提示符中键入condalist,以查看你安装的内容。  

安装内容.jpg  

PS:如果按上面操作后在AnacondaPrompt中都无法使用Conda命令,按以下顺序的解决办法来尝试(正常使用的朋友忽略这一步,继续往下):  

1)检查你是否原来安装过Python,如果安装过请彻底删除Python(同时要删除环境变量)后重装Anaconda  

2)检查自己是否将Conda命令添加到了环境变量。  

3)确保你的Anaconda安装路径不包含中文或其他非英语常用字符  

4)经过以上步骤还是没有任何改善,请卸载Anaconda重装一遍  


如果AnacondaPrompt中可以使用conda命令,接着下面继续操作。  

为了避免后面使用报错,你需要先更新下所有包。在终端输入更新所有包的命令:  

condaupgrade--all  

并在提示是否更新的时候输入y(Yes)让更新继续。初次安装下的软件包版本一般都比较老旧,因此提前更新可以避免未来不必要的问题。  

如果运行以上命令或者安装包报下面的错误信息:  

错误.jpg  

可以用下面的解决办法(在终端中运行以下命令):  

condaconfig--addchannelshttps://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/  

condaconfig--setshow_channel_urlsyes  

如果命令行方法添加不上,可以在“notebook工作文件夹”找到文件.condarc,  

什么是你的“notebook工作文件夹”呢?  

默认情况下,是你启动AnacondaPrompt终端中的那个文件夹,比如我电脑上是下面这个文件夹(Windows为C://Users/username/.condarc,Linux/Mac为~/.condarc):  

condarc.jpg 

打开该文件夹,修改文件内容如下:  

(如果没有找到.condarc,用notepad++软件在“notebook工作文件夹”下新建一个该文件即可,并添加以下内容)  

添加的内容.jpg  

为了方便,你可以将下面部分直接复制到上面的文件中:  

channels:  

-https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/  

-defaults  

show_channel_urls:yes  

3.如何管理包?  

安装了Anaconda之后,就可以很方便的管理包了(安装,卸载,更新)。  

1)安装包  

在终端中键入:  

condainstallpackage_name  

例如,要安装pandas,在终端中输入:  

condainstallpandas  

你还可以同时安装多个包。类似condainstallpandasnumpy的命令会同时安装所有这些包。还可以通过添加版本号(例如condainstallnumpy=1.10)来指定所需的包版本。  

conda还会自动为你安装依赖项。例如,scipy依赖于numpy,因为它使用并需要numpy。如果你只安装scipy(condainstallscipy),则conda还会安装numpy(如果尚未安装的话)。  

2)卸载包  

在终端中键入:  

condaremovepackage_names  

上面命令中的package_names是指你要卸载包的名称,例如你想卸载pandas包:condaremovepandas  

3)更新包  

在终端中键入:  

condaupdatepackage_name  

如果想更新环境中的所有包(这样做常常很有用),使用:condaupdate--all。  

4)列出已安装的包  

#列出已安装的包  

condalist  

例如我已经成功安装了numpy和pandas这两个常用的包。  

安装成功的两个包.jpg

如果不知道要找的包的确切名称,可以尝试使用condasearchsearch_term进行搜索。例如,我知道我想安装numpy,但我不清楚确切的包名称。我可以这样尝试:condasearchnum。  

4.如何管理环境?  

conda可以为你不同的项目建立不同的运行环境。  

0)安装nb_conda用于notebook自动关联nb_conda的环境。  

管理环境.jpg

1)创建环境  

在终端中使用:  

condacreate-nenv_namepackage_names  

上面的命令中,env_name是设置环境的名称(-n是指该命令后面的env_name是你要创建环境的名称),package_names是你要安装在创建环境中的包名称。  

例如,要创建环境名称为py3的环境并在其中安装numpy,在终端中输入condacreate-npy3pandas。  

创建环境.jpg

2)创建环境时,可以指定要安装在环境中的Python版本  

当你同时使用Python2.x和Python3.x中的代码时这很有用。要创建具有特定Python版本的环境,例如创建环境名称为py3,并安装最新版本的Python3在终端中输入:  

condacreate-npy3python=3  

或也可以这样创建环境名称为py2,并安装最新版本的Python2:  

condacreate-npy2python=2  

因为我做的项目不同,有时候会用到Python2,还有时候会用到Python3。所以我在自己的计算机上创建了这两个环境,并分别取了这样的环境名称:py2,py3。这样我可以根据不同的项目轻松使用不同版本的python。  

如果你要安装特定版本(例如Python3.6),请使用condacreate-npypython=3.6  

3)进入环境  

在Windows上,你可以使用activatemy_env进入。在OSX/Linux上使用sourceactivatemy_env进入环境。  

进入环境后,你会在终端提示符中看到环境名称,下面图片是我进入py3的环境(这里的py3是我上面创建环境时自己起的名称,你可以起个自己喜欢的名称)。  

环境名称.jpg 

进入环境后,我可以用condalist查看环境中默认安装的几个包:  

查看该环境下安装的包.jpg

在环境中安装包的命令与前面一样:condainstallpackage_name。  

不过,这次你安装的特定包仅在你进入环境后才可用。  

3)离开环境  

在Windows上,终端中输入:  

deactivate  

在OSX/Linux上输入:  

sourcedeactivate  

4)共享环境  

共享环境非常有用,它能让其他人安装你的代码中使用的所有包,并确保这些包的版本正确。比如你开发了一个药店数据分析系统,你要提交给项目部署系统的王二狗来部署你的项目,但是王二狗并不知道你当时开发时使用的是哪个python版本,以及使用了哪些包和包的版本。这怎么办呢?  

你可以在你当前的环境中终端中使用condaenvexport>environment.yaml将你当前的环境保存到文件中包保存为YAML文件(包括Pyhton版本和所有包的名称)。  

命令的第一部分condaenvexport用于输出环境中的所有包的名称(包括Python版本)。  

输出的环境名称.jpg

在“notebook工作文件夹”下(及你在终端中上图的路径)可以看到导出的环境文件:  

  环境文件.jpg

在GitHub上共享代码时,最好同样创建环境文件并将其包括在代码库中。这能让其他人更轻松地安装你的代码的所有依赖项。  

导出的环境文件,在其他电脑环境中如何使用呢?  

首先在conda中进入你的环境,比如activatepy3  

然后在使用以下命令更新你的环境:  

#其中-f表示你要导出文件在本地的路径,所以/path/to/environment.yml要换成你本地的实际路径  

condaenvupdate-f=/path/to/environment.yml  

对于不使用conda的用户,我通常还会使用pipfreeze>environment.txt将一个txt文件导出并包括在其中。  

具体见这里:https://pip.pypa.io/en/stable/reference/pip_freeze/  

举个例子你可能更容易理解这个使用场景:  

首先,我在自己的电脑上在conda中将项目的包导出成environment.txt文件:  

  文件.jpg

然后我将该文件包含在项目的代码库中,其他项目成员即使在他的电脑上没有安装conda也可以使用该文件来安装和我一样的开发环境:  

他在自己的电脑上进入python命令环境,然后运行以下命令就可以安装该项目需要的包:  

pipinstall-r/path/requirements.txt  

其中/path/requirements.txt是该文件在你电脑上的实际路径。  

  路径.jpg

5)列出环境  

我有时候会忘记自己创建的环境名称,这时候用condaenvlist就可以列出你创建的所有环境。  

你会看到环境的列表,而且你当前所在环境的旁边会有一个星号。默认的环境(即当你不在选定环境中时使用的环境)名为root。  

root.jpg

6)删除环境  

如果你不再使用某个环境,可以使用condaenvremove-nenv_name删除指定的环境(在这里环境名为env_name)。  

最后重新再强调下,不要被上面的命令吓到。虽然上述命令多,给了谁都记不住的。后面你跟着我在知乎上多做项目,用的多了自然记住了。你只需要跟着上面步骤操作下,并理解了每一步是干什么的就可以了。后面遇到要做的事情,忘记了回头查这个文档就可以了。  

conda的官方文档:https://conda.io/docs/user-guide/tasks/index.html  

按照上面的步骤你亲自操作一遍后,你已经学会了Anaconda,并安装好你的数据分析Pyhton环境了,接下来你就可以愉快的使用Jupyternotebook来做数据分析了。  


在线咨询

点击这里给我发消息售前咨询专员

点击这里给我发消息售后服务专员

在线咨询

免费通话

24h咨询:18221674630


如您有问题,可以咨询我们的24H咨询电话!

免费通话

微信扫一扫

微信联系
返回顶部