用pip安装Python扩展包有时候需要编译源代码,这着实有点烦。Anaconda则提供了一站式服务,可以通过其conda命令行安装预制包。

Conda和Pip的区别

Understanding Conda and Pip介绍了Conda和Pip的区别,总结如下:

  • Pip用于从pypi.org安装Python的源码包或者Wheel包;conda则是从https://repo.anaconda.com/https://anaconda.org/安装预处理过的包(比如已经编译过的),然后conda提供的包不限于Python
    • 总的来说,conda提供和科学计算相关的预制包
  • conda默认提供创建多个Python环境的工具,而无需使用virtualenv, venv,或者上层工具pipenv, poetry, hatch等等
  • conda提供的预制包数目大概在1500个,此外还可以从https://conda-forge.org/https://bioconda.github.io/安装额外的包。但是pip提供的软件包比conda大一个数量级,所以有时候conda和pip会混合使用
  • 最后,conda使用satisfiability (SAT) solver来处理预制包之间的依赖,会比pip在包依赖管理方面更强

Anaconda和Miniconda的关系

Anaconda or Miniconda?有所介绍:

  • Anaconda大而全,包含很多GUI程序,全部安装需要3GB存储空间
  • Miniconda不需一次性安装所有预制包,可以根据需求一点一点增加

Python3对应的是Anaconda3和Miniconda3,在Windows下可以使用scoop安装。

不管是Anaconda还是Miniconda,都提供conda命令行。

conda命令行

使用aliyun的镜像,首先通过conda config --set show_channel_urls yes创建一个~/.condarc

编辑.condarc,修改其内容为:

channels:
  - defaults
show_channel_urls: true
default_channels:
  - http://mirrors.aliyun.com/anaconda/pkgs/main
  - http://mirrors.aliyun.com/anaconda/pkgs/r
  - http://mirrors.aliyun.com/anaconda/pkgs/msys2
custom_channels:
  conda-forge: http://mirrors.aliyun.com/anaconda/cloud
  msys2: http://mirrors.aliyun.com/anaconda/cloud
  bioconda: http://mirrors.aliyun.com/anaconda/cloud
  menpo: http://mirrors.aliyun.com/anaconda/cloud
  pytorch: http://mirrors.aliyun.com/anaconda/cloud
  simpleitk: http://mirrors.aliyun.com/anaconda/cloud

然后执行conda clean -i清理缓存。

示例:搜索安装numpy:

conda search numpy
conda install numpy

更多参考Conda packages

其他

(本篇完)