virtualenv
virtualenv用于创建独立的Python环境,多个Python相互独立,互不影响,它能够:
- 在没有权限的情况下安装新套件
- 不同应用可以使用不同的套件版本
- 套件升级不影响其他应用
一、安装
安装easy_install
sudo yum -y install python-setuptools
安装pip
sudo easy_install pip
安装virtualenv
sudo pip install virtualenv
二、使用
-
建立虚拟环境
virtualenv [指定虛擬環境的名稱]
例如下列指令会建立名称为“ENV”的虚拟环境
virtualenv ENV
默认情况下,虚拟环境会依赖系统环境中的site packages,就是说系统中已经安装好的第三方package也会安装在虚拟环境中,如果不想依赖这些package,那么可以加上参数 --no-site-packages建立虚拟环境
virtualenv --no-site-packages [虚拟环境名称]
-
启动虚拟环境
cd ENV source ./bin/activate
注意此时命令行会多一个(ENV),ENV为虚拟环境名称,接下来所有模块都只会安装到该目录中去。
-
退出虚拟环境
deactivate
-
在虚拟环境中安装新的Python套件
Virtualenv 附带有pip安装工具,因此需要安装的套件可以直接运行:
pip install [套件名称]
如果没有启动虚拟环境,系统也安装了pip工具,那么套件将被安装在系统环境中,为了避免发生此事,可以在~/.bashrc文件中加上:
export PIP_REQUIRE_VIRTUALENV=true
或者让在执行pip的时候让系统自动开启虚拟环境:
export PIP_RESPECT_VIRTUALENV=true
避免意外将套件安装至系统环境
-
从程序中指定使用虚拟环境的函数库
无法从Shell启动虚拟环境的情况,像是使用mod_python或mod_wsgi,这时可以在Python的程序中加上:
activate_this = '/path/to/env/bin/activate_this.py' execfile(activate_this, dict(__file__=activate_this))
来使用安装在虚拟环境中的packages。
三、延伸套件:Virtualenvwrapper
Virtaulenvwrapper是virtualenv的扩展包,用于更方便管理虚拟环境,它可以做:
- 将所有虚拟环境整合在一个目录下
- 管理(新增,删除,复制)虚拟环境
- 切换虚拟环境
-
安装
sudo pip install virtualenvwrapper
把下面这句加到~/.bashrc里面,如不嫌麻烦,也可以每次都手动执行。
export WORKON_HOME=$HOME/.virtualenvs source /usr/bin/virtualenvwrapper.sh
运行
source ~/.bashrc
此时virtualenvwrapper就可以使用了。
-
使用方法
列出虚拟环境列表
workon
也可以使用
lsvirtualenv [-b] [-l] [-h]
新建虚拟环境
mkvirtualenv [虚拟环境名称]
完整命令
mkvirtualenv [-i package] [-r requirements_file] [virtualenv options] ENVNAME
启动/切换虚拟环境
workon [虚拟环境名称]
删除虚拟环境
rmvirtualenv [虚拟环境名称]
复制虚拟环境
cpvirtualenv ENVNAME TARGETENVNAME
离开虚拟环境
deactivate
Virtualenvwrapper 的功能當然不只如此,更多功能可以參考 Virtualenvwrapper 的官方文件。
Comments
comments powered by Disqus