使用 Conda 管理 Python 开发环境

Conda 是非常好用的 Python 环境管理工具,目前使用最为广泛的发行版是 Anaconda。Anaconda 默认自带了大量科学计算和 Python 常用的第三方库,但体积不小。除此之外,Miniconda 的体积会小很多,但是自带的库也较少了。日常工作中,我会使用 Miniconda 来管理开发环境。

Miniconda 可以通过 官网 下载,最新预装 Python 3.7 环境安装文件大约 60 MB。

安装好 Miniconda 之后,就需要安装常用的第三方库。这里推荐使用 .yaml 文件进行管理。下面是一个示例环境文件:

name: py36
channels:
  - defaults
  - conda-forge
  - anaconda
dependencies:
  - python=3.6.8
  - jupyter=1.0.0
  - matplotlib=3.0.2
  - numpy=1.15.4
  - pandas=0.23.4
  - scikit-learn=0.20.1
  - scipy=1.1.0
  - pip:
      - airtable

name 对应环境的名称,这里我们打算建立一个 Python 3.6 的虚拟环境。dependencies 中包含第三方库及版本号。由于个别库不包含在 Anaconda 官方源中,所以需要指定对应的 channelsdependencies 中也可以关联一些无法通过 Conda 安装的库,则通过 pip 安装。

有了环境配置文件,就可以直接启动一个虚拟环境了:

conda env create -f environment.yaml

你可能并不想使用虚拟环境,而是直接更新默认环境。默认环境的名称为 base,所以需要将 environment.yaml 中的 name 改为 base 之后,使用下面命令更新:

conda env update -f environment.yaml

如果想要导出现有环境为配置文件,则可使用:

conda env export > environment.yml

conda 最大的优势在于可以解决依赖,非常省心。例如,当你想安装支持 GPU 版本的 TensorFlow 时,一般需要先安装 TensorFlow,再安装 cuda 框架,最好安装 cudnn 神经网络加速工具。而使用 Conda 安装时,只需要 conda install tensorflow,一切自动搞定。