我们经常会遇到下面这样的场景:
- 同时在系统安装多个版本的
Python
,例如同时安装Python2
和Python3
- 由于 A 项目和 B 项目使用的
Python
包版本不一致,在同一个环境中无法保证两个项目同时都能正常运行
这时候,我们就该考虑使用虚拟环境了,虚拟环境可以为不同的项目创建相互独立的环境,互不影响
Python 中的环境管理工具有很多,例如virtualenv
、pyenv
等,但个人更喜欢用conda
。借助 conda
,我们就能轻松的应对以上问题啦!
使用 conda
过程中,可以在命令行中使用-h
参数,打开帮助文档
# 查看conda帮助文档
conda -h
# 查看conda环境管理命令帮助文档
conda env -h
准备工作:配置 conda 镜像
默认的 conda
源下载速度比较慢,需要先将 conda
源设置为国内镜像
# 添加 Anaconda 的 TUNA 镜像
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
# 设置搜索时显示通道地址
conda config --set show_channel_urls yes
列出当前所有的环境
conda info -e
* 表示当前激活的环境
创建一个虚拟环境
conda create -n env_name python=3.6 pandas=0.21
以上命令创建了一个名为 env_name
的新环境的同时安装了 Python3.6
和 pandas
激活虚拟环境
# Windows系统
activate env_name
# Linux和Mac系统
source activate env_name
删除虚拟环境
conda remove -n env_name
复制某个环境
如果环境依赖包太多,从头开始安装环境,会比较耗时,我们可以复制一个已有的环境,来创建新环境
conda create -n new_env_name --clone old_env_name
分享环境
通常我们会遇到以下场景:
- 更换电脑、更换系统后快速恢复原来的环境
- 代码写好以后,通常需要交给别人部署,需要告诉部署人员自己的环境和 Python 依赖信息
- 在另外一台电脑运行我们的应用程序
这时候 conda
提供的分享环境功能就派上用场了,能够很方便的将我们的环境信息快速的分享出来,操作步骤如下:
- 首先我们需要先激活想分享的环境
# Windows
activate env_name
# Linux/Mac
source activate env_name
- 然后通过 export 命令导出环境配置
conda env export > environment.yml
导出的环境配置
打开environment.yml
文件,我们就能看到上图中的环境信息
- 最后,通过以下命令就可以重新安装一个相同的环境
conda env create -f environment.yml
当然,conda
也可以像pip
一样用于包管理的,这里就不详细展开了,感兴趣的同学可以通过conda -h
命令了解详细用法,