您的位置:首页 > 编程语言 > Python开发

【Python】virtualenv管理Python虚拟环境

2017-10-15 14:53 507 查看

安装virtualenv

如果是
Mac OS X
或者
Linux


$ sudo pip install virtualenv


如果是
Ubuntu


$ sudo apt-get install python-virtualenv


基本使用

假定我们要开发一个新的项目,需要一套独立的Python运行环境

创建目录

$ mkdir myproject

$ cd myproject/


创建环境

创建一个独立的Python运行环境,命名为
venv


$ virtualenv --python=python3.5 --no-site-packages venv

Running virtualenv with interpreter /usr/bin/python3.5
Using base prefix '/usr'
New python executable in /home/widiot/flask-workspace/venv/bin/python3.5
Also creating executable in /home/widiot/flask-workspace/venv/bin/python
Installing setuptools, pkg_resources, pip, wheel...done.


--python=
参数指定要创建的环境中的Python版本

--no-site-packages
参数不会复制已经安装到系统Python环境中的所有第三方包

启动环境

新建的Python环境被放到当前目录下的
venv/
目录。可以用
source
启动该环境

$ source venv/bin/activate

(venv) myproject $


注意到命令提示符变了,有个
(venv)
前缀,表示当前环境是一个名为
venv
的Python环境

安装第三方包

下面正常安装各种第三方包

(venv) myproject $ pip install jinja2

...
Successfully installed jinja2-2.7.3 markupsafe-0.23
(venv) myproject $ python myapp.py
...


venv
环境下,用
pip
安装的包都被安装到
venv
这个环境下,系统Python环境不受任何影响。也就是说,
venv
环境是专门针对myproject这个应用创建的

退出环境

退出当前的
venv
环境,使用
deactivate
命令

(venv) myproject $ deactivate

myproject $


此时就回到了正常的环境,现在
pip
python
均是在系统Python环境下执行

完全可以针对每个应用创建独立的Python运行环境,这样就可以对每个应用的Python环境进行隔离

生成可打包环境

如果需要打包一个ENV, 可以解压后直接使用, 这时候可以使用
virtualenv -relocatable
指令将ENV修改为可更改位置的ENV

venv $ virtualenv --relocatable ./

Making script ./bin/easy_install relative
Making script ./bin/easy_install-3.4 relative
Making script ./bin/pip relative
Making script ./bin/pip3 relative
Making script ./bin/pip3.4 relative


当前的ENV都被修改为相对路径, 可以打包当前目录, 到其他位置使用

原理

virtualenv
是如何创建“独立”的Python运行环境的呢?

原理很简单,就是把系统的Python复制一份到
virtualenv
的环境

用命令
source venv/bin/activate
进入一个
virtualenv
环境时,
virtualenv
会修改相关环境变量,让命令
python
pip
均指向当前的virtualenv环境
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息