近期做一个项目的调研,需要使用到OpenCV、Python,这里记录anaconda进行Python环境配置管理过程。

Python常用环境管理工具

  • virtualenv,用于在一台机器上创建多个独立的Python虚拟运行环境,多个Python环境相互独立,互不影响
  • pyenv, Python版本管理工具,可以方便的在多个Python版本之间进行切换
  • Anaconda,Anaconda是一个用于科学计算的Python发行版,支持 Linux, Mac, Windows系统,提供了包管理与环境管理的功能,可以很方便地解决多版本python并存、切换以及各种第三方包安装问题。Anaconda利用工具/命令conda来进行package和environment的管理,并且已经包含了Python和相关的配套工具。

Anaconda VS conda

conda可以理解为一个工具,也是一个可执行命令,其核心功能是包管理与环境管理。包管理与pip的使用类似,环境管理则允许用户方便地安装不同版本的python并可以快速切换。Anaconda则是一个打包的集合,里面预装好了conda、某个版本的python、众多packages、科学计算工具等等,所以也称为Python的一种发行版

Anaconda下载安装

Anaconda下载安装参见官网下载,支持Windows,macOS,Linux平台。

Conda环境管理

Conda环境管理功能允许同时安装多个不同版本的Python,并可以自由切换。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
# 查看已经安装的环境
conda info -e

# 创建一个名为python34的环境,指定Python版本是3.4(不用管是3.4.x,conda会为我们自动寻找3.4.x中的最新版本) 
conda create --name python34 python=3.4

# 安装好后,使用activate激活某个环境 
activate python34 # for Windows source activate python34 # for Linux & Mac

# 激活后,会发现terminal输入的地方多了python34的字样,实际上,此时系统做的事情就是把默认2.7环境从PATH中去除,再把3.4对应的命令加入PATH

 
python --version 
# 可以得到`Python 3.4.5 :: Anaconda 4.1.1 (64-bit)`,即系统已经切换到了3.4的环境 

# 如果想返回默认的python 2.7环境,运行 
deactivate python34 # for Windows source deactivate python34 # for Linux & Mac

# 删除一个已有的环境 
conda remove --name python34 --all

Conda包管理常用命令

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
# 查看当前环境下已安装的包 
conda list

# 查看某个指定环境的已安装包 
conda list -n python34

# 查找package信息 
conda search numpy

# 安装package 
conda install -n python34 numpy

# 如果不用-n指定环境名称则被安装在当前活跃环境 
# 也可以通过-c指定通过某个channel安装

# 更新package 
conda update -n python34 numpy

# 删除package 
conda remove -n python34 numpy

设置国内镜像

由于默认的安装源在国外,conda下载速度十分缓慢。可以使用清华大学TUNA镜像。 TUNA 还提供了 Anaconda 仓库的镜像,运行以下命令:

1
2
3
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --set show_channel_urls yes

即可添加 Anaconda Python 免费仓库。

该配置保存在.condarc文件,也可以直接进行配置,Windows为C://Users/username/.condarc,Linux/Mac为~/.condarc。

1
2
3
4
5
6
channels:
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
  - defaults
ssl_verify: true
show_channel_urls: true

删除镜像

1
$ conda config --remove channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/

查看配置

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
$ conda config --show
add_anaconda_token: True
add_pip_as_python_dependency: True
aggressive_update_packages:
  - ca-certificates
  - certifi
  - openssl
allow_conda_downgrades: False
allow_cycles: True
allow_non_channel_urls: False
allow_softlinks: False
always_copy: False
always_softlink: False
always_yes: None
anaconda_upload: None
....

参考资料