在 Python 中,我们经常需要使用到很多库,Python
会这么流行和它的库非常丰富有极大的关系。但是,我们可能不同的项目使用的库版本是不同的,虽然很多库是兼容旧版的,但是,万一哪天遇到一些不兼容旧版的库,那可能就会被害惨了。正是因为这些需求,所以
python 社区中有一个叫做 virtualenv
的工具,它可以物理隔离各个项目的运行环境,保证各个项目使用自己需要的库,而互不干扰。
但是,virtualenv
还稍显麻烦,例如当我要使用某个虚拟环境的时候,那么需要敲这样的命令:
source /home/www/flasky/env/bin/activate
然后再安装各种库。
因为 virtualenv
的一些不方便,所以增强版virtualenvwrapper
就出来了。
virtualenvwrapper
对 virtualenv
进行了封装,然后提供了更简便的 新建/启用/管理/销毁 的操作体验。
安装 virtualenvwrapper
安装 virtualenvwrapper
很简单,就和安装 virtualenv
一样简单:
$ sudo pip install virtualenvwrapper
安装完之后,然后设置一下虚拟环境的目录,也就是说以后的虚拟环境都安装在这个地方了,我一般是设置在 ~/.bashrc
文件中:
$ vim ~/.bashrc
然后在里面填入一下内容:
if [ `id -u` != '0' ]; then
export VIRTUALENV_USE_DISTRIBUTE=1 # <-- Always use pip/distribute
export WORKON_HOME=$HOME/.virtualenvs # <-- Where all virtualenvs will be stored
source /usr/local/bin/virtualenvwrapper.sh
export PIP_VIRTUALENV_BASE=$WORKON_HOME
export PIP_RESPECT_VIRTUALENV=true
fi
这个配置做了配置 virtualenvwrapper
要做的唯二操作,分别是:
- 设置
WORKON_HOME
- 执行命令
source /usr/local/bin/virtualenvwrapper.sh
现在 virtualenvwrapper
就算是安装配置完全了,尝试一下:
$ mkvirtualenv my_project_venv
$ workon my_project_venv
$ deactivate
$ rmvirtualenv my_project_venv
就这样,一个虚拟环境从创建、应用到退出,一条简短的命令使用。
后续
这篇文章介绍的都是一些比较常用的 virtualenvwrapper
的用法,肯定的,作为virtualenv
的增强版,肯定功能比这个丰富得多,例如我们可以在创建虚拟环境之后更新一下 pip
啊,可以添加这一句:
echo 'pip install --upgrade pip' >> $WORKON_HOME/postmkvirtualenv
这样以后每次创建新环境都会保持 pip
的最新版,这样对于我这种有更新强迫症的人来说再好不过了。
还有更多有趣的功能,可以参考后面的参考资料中的链接了解。