使用Python的一定对著名的科学计算集成环境Anaconda(miniconda)并不陌生,而无论是使用Anaconda还是miniconda都必然会用到其包管理器——conda。作为一款管理python安装包的包管理器,其功能要比python自带的pip强大不少。
安装好anaconda时会默认安装conda,以及一些python安装包。然后可以根据个人需要,使用conda安装其余的第三方包,conda会自动解决包之间的依赖关系。在安装第三方包时,由于网络连接原因,连接默认源的速度会很慢,有时会出现连接中断,甚至无法连接的情况。为了提高下载速度,并且顺利安装,在安装好anaconda之后,使用conda包管理器之前,有必要更改conda的默认配置信息,尤其是源的通道。
修改源通道
先执行 conda config --show-sources 查看已有通道信息:
conda的配置信息都存储在 .condarc 文件中(注意: .):
- windows系统,.condarc 位于 C:Users用户名目录下
- Linux系统,./condarc 位于 /home/用户名/ 目录下
从图中可以看出,除了 defaults 之外,还有一些清华大学的通道以及 r 通道。这些通道都是后来添加的。通过执行以下命令可以添加通道:
添加 anaconda 源通道
代码语言:javascript复制conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
添加 第三方源通道
代码语言:javascript复制# conda-forge 源通道,包含了很多常用的python包
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
# msys2 源通道,可以非常方便的在windows上安装 fortran 编译器等
# 有利于解决一些在 linux下运行,而对 windows 支持不好的包的依赖
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/
执行
代码语言:javascript复制conda config --set show_channel_urls yes
可以在安装python包时看出包的来源。
除了清华大学设置了 anaconda 的镜像站之外,中国科大,南京大学等国内高校都同步了anaconda的官方库镜像以及一些第三方库镜像。因此,除了清华大学的镜像站可用之外,还有其它镜像站同样可用,可根据需要选择。
注意:
如果你是清华大学的,那么建议你使用清华大学镜像站。因为处于清华大学内网中通过清华镜像站安装python库会比在校外连接快10倍左右。如果你们学校没有同步anaconda镜像站,那么可以根据网络距离选择距离你近的镜像站。当然,你也可以看心情选择。
conda config 命令也有许多可选项,支持信息写入写入操作,可以指定将配置信息写入到哪个文件。比如:
--system 选项,可以将配置信息写入系统路径下的 .condarc 文件,而不是用户目录下的 .condarc 文件中。
安装包
设置好源通道之后就可以安装需要的python包了,比如:
代码语言:javascript复制conda install matplotlib
默认情况下,连接源通道之后需要确认是否安装 matplotlib,但有时候不想确认,直接默认安装的话,可以执行以下命令:
代码语言:javascript复制conda install --yes matplotlib
也可以安装指定版本号的包
代码语言:javascript复制conda install matplotlib=2.0.1
上述安装方式是为默认的python环境安装python相关包,也可以为指定的python环境安装相关包:
代码语言:javascript复制conda install -n myenv matplotlib
除此之外,还可以从指定通道安装所需要的包:
代码语言:javascript复制conda install -c conda-forge wrf-python
如果有些安装包的连接不稳定的时候,可以将安装包下载到本地,然后通过本地安装:
代码语言:javascript复制conda install --use-local 包名
可能因为需要,只想知道执行安装命令之后会发生什么,但是并(闲)不(的)想(无)真(聊)的(玩)安(一)装(玩),可以指定 --dry-run 参数(嗯,干run)。
代码语言:javascript复制conda install --dry-run matplotlib
还可以强制安装,也可以只安装指定的安装包,不安装依赖。更多功能,可以执行:
代码语言:javascript复制conda install --help
更新包
更新python包的方式和安装python包的方式类似,只是将 install 改为 update/upgrade,而且支持的可选参数项几乎完全相同。
代码语言:javascript复制conda update/upgrade -n myenv matplotlib=2.0.1
conda update/upgrade --yes --use-local matplotlib
删除包
卸载python包的命令形式与安装操作刚好相反,但是大部分可选参数项类似,也提供了一键卸载所有安装包,即整个python环境。
代码语言:javascript复制conda remove/uninstall --all
搜索包
如果安装之前不确定是否存在此安装包,或是安装包的名称记不太清了,都可以先搜索一下安装包。
conda search 命令支持python正则表达式输入,可以非常方便的进行搜索。如果搜索字符串中包含 - ,需要通过 -- 将 搜索字符串隔开,比如:
代码语言:javascript复制conda search -- -h
搜索结果中包含 * ,则意味着安装到当前环境,如果包含 . ,则意味着不安装,但会在 pkgs 目录进行缓存。
也可以安装平台进行搜索:
代码语言:javascript复制conda search --platform linux-64
、支持的平台名如下:
代码语言:javascript复制win-32,win-64,osx-64,linux-32,linux-64
除了上述命令之外,还有一些其它命令,但是不经常使用,比如 conda list 列出安装包信息等。