python虚拟环境主要适用于不同的项目之间使用不同版本的某些包,但是因为某些原因(比如有依赖冲突)却不能升级到最新版本.如果所有的包都公用一个目录,很容易出现不小心更新了项目A的依赖,却影响了项目B用到的依赖的情况. 这种情况下就需要对环境进行隔离,使用虚拟环境让全局的site-packages目录非常干净和可管理
python社区中创建和管理虚拟环境的工具有virtualenv和pyvenv. 这些工具可以帮助你跨苏创建一个单独,干净的python环境,你可以把所需要的包安装到各自独立的环境中
virtualenv
先安装virtualenv
sudo pip install virtualenv
创建一个python环境
virtualenv venv
使用source激活virtualenv环境
source venv/bin/activate
取消激活
deactivate
virtualenvwrapper
virtualenvwrapper是对virtualenv的功能扩展,它有如下用途:
- 用来管理全部的虚拟环境
- 能方便地创建,删除和拷贝虚拟环境
- 用单个命令就可以切换不同的虚拟环境
- 可以使用Tab补全虚拟环境
- 支持用户粒度的钩子支持
使用如下方式安装:
sudo pip install virtualenvwrapper
先初始化virtualenvwrapper:
export WORKON_HOME=~/venv
source /usr/local/bin/virtualenvwrapper.sh
创建虚拟环境
mkvirtualenv venv1
#输入workon, 然后按Tab管理虚拟环境
直接使用workon 虚拟环境名称,可以切换虚拟环境
其他常用命令
- lsvirtualenv: 列出全部的虚拟环境
- showvirtualenv: 列出单个虚拟环境的信息
- rmvirtualenv:删除一个虚拟环境
- cpvirtualenv: 拷贝虚拟环境
- allvirtualenv: 对当前虚拟环境执行统一的命令
- cdvirtualenv: 可以直接切换到虚拟环境的子目录里面
- cdsitepackages: 和cdvirtualenv同理,切换到虚拟环境的site-packages目录下
- lssitepackages: 列出site-packages 目录下的目录