• Python 隔离沙箱 virtualenv


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

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

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

    我通常是使用pypm进行下载:

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

    pypm install virtualenv -g

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

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

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

    (2)创建虚拟目录

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

    进入你想要创建的目录下面,例如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_1Script>activate

    (mysite_1)C:mysite_1Script

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

    我们可以用pypm 安装工具来进行安装,也可以利用pip工具进行安装,但是推荐使用pip。原因是pip的功能更加强大。

    (a )使用pypm 安装的方法

    pypm -E C:mysite_1 install -r config equirement.pip

    (b)使用pip 安装方法

    pip  install -r config equirement.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

  • 相关阅读:
    leetcode------Remove Element
    leetcode------Merge Two Sorted Lists
    [转载]Unity3D 游戏引擎之使用C#语言建立本地数据库(SQLITE)
    [转载]VS2012创建MVC3项目提示错误: 此模板尝试加载组件程序集 “NuGet.VisualStudio.Interop, Version=1.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a”。
    [转载]Unity3D 访问Access数据库
    [转载]C#导入XLS数据到数据库
    [转载]Unity3D的断点调试功能
    [Unity3D]支持的视频格式
    unity 3d 获取鼠标当前坐标
    [转载]VS2012程序打包部署详解
  • 原文地址:https://www.cnblogs.com/CBDoctor/p/3995938.html
Copyright © 2020-2023  润新知