virtualenv用于为一个应用创建独立的Python运行环境(虚拟环境),多个Python相互独立,互不影响,它能够:
- 在没有权限的情况下安装新套件
- 不同应用可以使用不同的套件版本
- 套件升级不影响其他应用
安装方法
1、shell下运行如下命令进行下载安装 pip3 install python-virtualenv
pip3 install python-virtualenv
2、使用方法 virtualenv [虚拟环境名称-也是目录名称]
$ virtualenv --no-site-packages venv
Using base prefix '/usr/local/.../Python.framework/Versions/3.4'
New python executable in venv/bin/python3.4
Also creating executable in venv/bin/python
Installing setuptools, pip, wheel...done.
其实命令virtualenv
+ 环境名称 就可以创建一个独立的Python虚拟环境,参数--no-site-packages
使得已经安装到系统Python环境中的所有第三方包都不会复制过来,这样,我们就得到了一个不带任何第三方包的“干净”的Python运行环境。
新建的Python环境被放到了当前目录下的venv目录。有了venv这个Python环境,可以使用source命令进入该环境:
3、启动虚拟环境
$ source venv/bin/activate
接下来的看命令行如果发现你的终端命令行前面带有(venv)前缀,那么恭喜你,启动了你的名为venv的Python环境。
接下来可正常安装各种你需要的第三方包,并运行python命令:
$ pip install django
...
注意,在venv环境下,用pip安装的包都被安装到了venv这个环境下,系统中的Python环境不受影响。(不要尝试使用$sudo pip安装,那样的话你会将环境安装到系统python环境中的。)
4、退出虚拟环境
$ deactiveate
执行了这段命令,观察你的终端命令行前面是不是没有了(venv),这意味着成功退出来虚拟环境,回到了我们的系统运行环境中。接下来的pip操作或者启动python均在系统环境中。分别在虚拟环境中和系统环境中执行pip list查看一下我们的安装的各种包的清单就会清晰的发现,虚拟环境是隔离的,我们完全可以针对每个应用创建独立的Python运行环境,而互不影响。
virtualenv是如何创建“独立”的Python运行环境的呢?原理很简单,就是把系统Python复制一份到virtualenv的环境,用命令source venv/bin/activate
进入一个virtualenv环境时,virtualenv会修改相关环境变量,让命令python
和pip
均指向当前的virtualenv环境。
总之:virtualenv为应用提供了隔离的Python运行环境,解决了不同应用多版本的冲突问题。
网友评论