virtualenvwrapper是用来管理virtualenv的扩展包,用着很方便。
1. 安装:
#安装virtualenv
(sudo) pip install virtualenv
#安装virtualenvwrapper
(sudo) pip install virtualenvwrapper
2. 配置:
修改~/.bash_profile或其它环境变量相关文件(如 .bashrc(我的Ubuntu15.10 下的是这个) 或用 ZSH 之后的 .zshrc),添加以下语句:
export WORKON_HOME=$HOME/.virtualenvs
export PROJECT_HOME=$HOME/workspace
source /usr/local/bin/virtualenvwrapper.sh
然后运行:
source ~/.bash_profile
3. 用法:
mkvirtualenv zqxt:创建运行环境zqxt
workon zqxt: 工作在 zqxt 环境 或 从其它环境切换到 zqxt 环境
deactivate: 退出终端环境
其它的:
rmvirtualenv ENV:删除运行环境ENV
mkproject mic:创建mic项目和运行环境mic
mktmpenv:创建临时运行环境
lsvirtualenv: 列出可用的运行环境
lssitepackages: 列出当前环境安装了的包
创建的环境是独立的,互不干扰,无需sudo权限即可使用 pip 来进行包的管理。
virtualenv 工具可以创建隔离的Python环境
我们经常会遇到两个常见问题
版本依赖
间接许可
版本依赖:
1.假设有一个app,需要libfoo 1.0 的库,另一个app需要libfoo 2.0的库,如何才能把这两个库都安装到/usr/lib/python2.7/site-packages?
2. 当系统的库发生了变化,或许app就运行不了
间接许可
3. 当主机,我们没有root权限。
virtualenv 就能解这样的问题,它将创建一个单独的环境,库将安装到自己目录下,不会和其他环境共享。
由于virtualenv用起来有点麻烦,wrapper对它进行了封装,让它更好用,最终我们使用wrapper提供的命令,但是实际工作都是virtualenv做的。
安装
推荐使用pip安装
pip install virutalenv virtualenvwrapper
virtualenv用法
创建环境
virtualenv [虚拟环境名称]
virtualenv test
默认创建的环境,是可以使用系统已经安装的包。
如果不想使用系统的包,加上–no-site-packeages参数
virtualenv --no-site-packages test
这个时候会创建目录test
激活环境
cd test
source ./bin/activate
此时,就进入了一个隔离的环境,安装,卸载和使用模块,都会在test环境中,而不会影响系统和其他环境。
退出环境
deactive
virtualenvwrapper的用法
我们可以看到,创建的环境都是零散的,而且还要执行cd,执行source 来激活环境。
vw可以进行环境的管理,把创建的环境记录下来,并进行管理。
初始化
第一次安装完成后需要,先设置一个变量WORKON_HOME,它将作为所有环境的前缀,并且source /usr/local/bin/virtualenvwrapper.sh
$ mkdir -p $WORKON_HOME
$ export WORKON_HOME=~/Envs
$ source /usr/local/bin/virtualenvwrapper.sh
把export命令和source命令,加入到~/.bash_profile,就无需重复初始化了
创建环境
mkvirtualenv env1
mkvirtualenv env2
环境创建之后,会自动进入该目录,并激活该环境。
切换环境
workon env1
workon env2
列出已有环境
workon
退出环境
deactivate
删除环境
rmvirtualenv
创建project
项目将创建到PROJECT_HOME目录下,实际上相当于在某个目录下,建了一个环境。
mkproject
#创建python2.7虚拟环境
➜ Test git:(master) ✗ virtualenv -p /usr/bin/python2.7 ENV2.7
Running virtualenv with interpreter /usr/bin/python2.7
New python executable in ENV2.7/bin/python
Installing setuptools, pip...done.
#创建python3.4虚拟环境
➜ Test git:(master) ✗ virtualenv -p /usr/local/bin/python3.4 ENV3.4
Running virtualenv with interpreter /usr/local/bin/python3.4
Using base prefix '/Library/Frameworks/Python.framework/Versions/3.4'
New python executable in ENV3.4/bin/python3.4
Also creating executable in ENV3.4/bin/python
Installing setuptools, pip...done.
#创建python3.4虚拟环境
➜ Test git:(master) ✗ virtualenv -p /usr/local/bin/python3.4 ENV3.4
Running virtualenv with interpreter /usr/local/bin/python3.4
Using base prefix '/Library/Frameworks/Python.framework/Versions/3.4'
New python executable in ENV3.4/bin/python3.4
Also creating executable in ENV3.4/bin/python
Installing setuptools, pip..