Python 隔离沙箱 virtualenv

  我认为Python一个很大的优点就是官方网站给出的众多的软件包,几乎能帮助你实现你想要的任何功能,避免了重复开发的劳动,可是零零碎碎的包,以及每一个包的各类各样的版本管理就成为了一个比较棘手的问题,所以有了virtuallenv的出现,安装好这个之后,就至关于有了一个独立的内存空间,举例来说,你有了一个名称为mysite_1的工程,使用的Python2.7的版本,另外一个工程是mysite_2,使用的是Python3.0的版本,因为Python版本彼此的兼容性差别,常规的方法是经过配置文件,让工程mysite_1读取Python2.7的目录,mysite_2读取Python3.0的目录。如今有了一个更简单的方法就是经过隔离沙箱这虚拟的环境,能够实现各个工程的彼此独立。html

 

下面介绍一下virtualenv在Windows平台下的安装和使用。python

 

(1)官方网站下载https://virtualenv.pypa.io/en/latest/python2.7

我一般是使用pypm进行下载:ide

----------------------------------------------------------------工具

pypm install virtualenv -gpost

----------------------------------------------------------------网站

-g 的意思是安装在Python的默认全局目录下,通常是Lib的site-packages目录下面,咱们也能够另外制定virtualenv的安装目录,经过 -E DIR 或者 --virtualenv = Dir 进行设置,可是推荐将virtualenv安装在site-packages目录下面。ui

 

(例如,pypm -E C:\mysite_1 install -r config\requirements.pip 意思就是指将requirement目录下的全部的文件都下载并安装到C盘下的mysite_1目录下)this

 

(2)建立虚拟目录url

----------------------------------------------------------------

进入你想要建立的目录下面,例如C盘

cd C:\

virtualenv mysite_1

----------------------------------------------------------------

此时,在C盘下能够发现新生成的mysite_1文件夹,里面包含三个文件,分别为

mysite_1 --------*Include

                 --------*Lib

                 --------*Scripts

(3)启动

打开mysite_1下的Scripts文件夹,

>cd mysite_1

C:\mysite_1

>cd Script

C:\mysite_1\Script>activate

(mysite_1)C:\mysite_1\Script

发现前面多了一个你建立的工程目录名,代表此时已经进入到虚拟环境。

咱们能够用pypm 安装工具来进行安装,也能够利用pip工具进行安装,可是推荐使用pip。缘由是pip的功能更增强大。

(a )使用pypm 安装的方法

pypm -E C:\mysite_1 install -r config\requirement.pip

(b)使用pip 安装方法

pip  install -r config\requirement.pip

须要注意的是:对于(a),咱们指定了安装的绝对路径,所以,能够在没有进入隔离沙箱环境下进行安装,可是对于(b)咱们必须在进入隔离沙箱的状况下使用。

另外,window下咱们还能够将.pip中的文件下载下来,解压后python setup.py install 进行安装,一样要在进入隔离沙箱的状况下使用。

详细的关于pip和pypm的使用方法能够查阅其详细说明文档。

(4)退出

只须要执行deactivate就退出了虚拟环境

 


咱们从DjangoPackages下载一个工程在实验一下虚拟目录的使用

http://mysmile.readthedocs.org/en/latest/Getting%20started/quick_install_guide.html

 

(1)

 

[注意]The --system-site-packages Option

If you build with virtualenv --system-site-packages ENV, your virtual environment will inherit packages from /usr/lib/python2.7/site-packages (or wherever your global site-packages directory is).

This can be used if you have control over the global site-packages directory, and you want to depend on the packages there. If you want isolation from the global system, do not use this flag。


 

将下载的mysmile文件解压到虚拟沙箱中,文件结构以下:

mysite_1 --------*Include

              --------*Lib

              --------*Scripts

     --------*mysmile-0.5.1

 

进入mysmile-0.5.1。能够看到manage.py文件,启动:python manage.py runserver.在url中输入http://127.0.0.1:8000/admin便可以看到下面启动的网页:

 
 

参考:

http://mengzhuo.org/blog/virtualenv%E5%92%8Cpip%E5%B0%8F%E6%8E%A2.html