virtualenv和virtualenvwrapper

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会修改相关环境变量,让命令pythonpip均指向当前的virtualenv环境。

​ 总之:virtualenv为应用提供了隔离的Python运行环境,解决了不同应用多版本的冲突问题。

你可能感兴趣的:(virtualenv和virtualenvwrapper)