anaconda是一个开源的包、环境管理器,可以比较有效地配置多个虚拟环境,当python入门到一定程度时,安装anaconda是很必要的。前段时间室友学习python的时候问到过我一些相关的问题,我就在这里简单写一些我知道的以及我搜集到的知识。
环境变量
安装anaconda过程中一个很重要的步骤就是配置环境变量,网上有很多手动添加环境变量的教程,其实很简单,只需添加三个路径,当然更简单的是直接在安装的时候添加到path(可以无视warning)。我想在这里写的是环境变量的概念问题,其实直到不久前帮同学安装我才明白。
环境变量是指在操作系统中用来指定操作系统运行环境的一些参数。当要求系统运行一个程序而没有告诉它程序所在的完整路径时,系统除了在当前目录下面寻找此程序外,还会到path中指定的路径去找。这就是为什么不添加C:\Users\用户名\Anaconda3\Scripts
到path就无法执行conda命令,因为此时conda.exe无法被找到。
conda与pip
利用conda install
与pip install
命令来安装各种包的过程中,想必你也对两者之间的区别很疑惑,下面我就总结一下我搜集到的相关解答。
简而言之,pip是python包的通用管理器,而conda是一个与语言无关的跨平台环境管理器。对我们而言,最显着的区别可能是这样的:pip在任何环境中安装python包,conda安装在conda环境中装任何包。因此往往conda list的数量会大于pip list。
要注意的是,如果使用conda安装多个环境时,对于同一个包只需要安装一次,有conda集中进行管理。
但是如果使用pip,因为每个环境安装使用的pip在不同的路径下,故会重复安装,而包会从缓存中取。
总的来说,我推荐尽早安装anaconda并且使用conda来管理python的各种包。
升级
我们可以在命令行中或者anaconda prompt中执行命令进行操作。
1 | conda update conda #升级conda |
在升级完成之后,我们可以使用命令来清理一些无用的包以释放一些空间:
1 | conda clean -p #删除没有用的包 |
虚拟环境
conda list
命令用于查看conda下的包,而conda env list
命令可以用来查看conda创建的所有虚拟环境。
下面就简述一下如何创建这些虚拟环境。
使用如下命令,可以创建一个新的环境:conda create -n Python27 python=2.7
其中Python27是自定义的一个名称,而python=2.7是一个格式,可以变动等号右边的数字来改变python环境的kernel版本,这里我们安装的是python2.7版本(将于2020年停止维护)。
在anaconda prompt中,我们可以看到我们处在的是base环境下,也就是我安装的python3环境下,我们可以使用下面两个命令来切换环境:
注意:如果直接在ubuntu的命令行中切换环境,需要加上
conda
,比如conda activate 环境名
。
在创建环境的过程中,难免会不小心取了个难听的环境名,别担心,我们有方法来删除环境。conda remove -n 难听的名字 --all
有时候一个环境已经配置好了,但我们想要重命名,这怎么办呢?可以这样办:
1 | conda create -n 新名字 --clone 老名字 |
把环境添加到jupyter notebook
首先通过activate进入想要添加的环境中,然后安装ipykernel,接下来就可以进行添加了。
1 | pip install ipykernel |
我们可以使用jupyter kernelspec list
来查看已添加到jupyter notebook的kernel。
显示如下:
我们也可以在jupyter notebook中的new或者kernel下查看新环境是否成功添加。
若想删除某个指定的kernel,可以使用命令jupyter kernelspec remove kernel_name
来完成。
在这里我想说明一下为什么要分开python的环境。
由于python是不向后兼容的,分开环境可以避免语法版本不一引起的错误,同时这也可以避免工具包安装与调用的混乱。