我认为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\requirements.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_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即可以看到下面启动的网页:

MySmile administration

Username: 
Password: 
 
     
English
     
Українська
     
Русский
     

参考:

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

Python 隔离沙箱 virtualenv的更多相关文章

  1. Python 隔离环境 virtualenv

    1) 安装 $ sudo pip3 install virtualenv 2) 创建并进入工程目录,例如 myproject $ mkdir myproject $ cd myproject 3) 在 ...

  2. Python虚拟环境工具-Virtualenv 介绍及部署记录

    在开发Python应用程序时,系统默认的Python版本可能会不兼容这个应用程序, 如果同时开发多个应用程序, 可能会用到好几个版本的python环境, 这种情况下,每个应用可能需要各自拥有一套&qu ...

  3. 使用python的虚拟环境virtualenv

    技术背景 在前面几篇博客中我们介绍了容器的使用(博客1.博客2.博客3.博客4.博客5),容器是一种系统级的隔离方案,更多的强调资源上的隔离.而这里我们要介绍的python的虚拟环境,更加强调的是依赖 ...

  4. (zhuan)Python 虚拟环境:Virtualenv

    Python 虚拟环境:Virtualenv zhuanzi: http://liuzhijun.iteye.com/blog/1872241 virtualenv virtualenv用于创建独立的 ...

  5. python中的virtualenv是干嘛的?

    众所周知,python的各种库跨度比较大,比如如果你开发web的话,一个项目使用的Django是1.8, 而另一个项目使用的Django版本是1.7, 这就给开发人员带来了很大的困扰. 因此,pyth ...

  6. python安装虚拟环境virtualenv

    虚拟环境 虚拟环境是一个将不同项目所需求的依赖分别放在独立的地方的一个工具,它给这些工程创建虚拟的Python环境.它解决了“项目X依赖于版本1.x,而项目Y需要项目4.x”的两难问题,而且使你的全局 ...

  7. python 虚拟环境操作 virtualenv +virtualenvwrapper

    Window 下创建python的虚拟环境 下载工具 pip install virtualenv 创建虚拟环境目录 # 注意此命令创建的虚拟环境目录是在当前目录下 virtualenv testen ...

  8. Python3.6编译安装以及python开发之virtualenv与virtualenvwrapper

    Python3.6编译安装 下载python源码包 先到安装目录 cd /opt 下载源码包 wget https://www.python.org/ftp/python/3.6.2/Python-3 ...

  9. Ubuntu下python使用pyenv+virtualenv进行版本和包隔离

    安装pyenv 参考:https://github.com/pyenv/pyenv git clone https://github.com/pyenv/pyenv.git ~/.pyenv echo ...

随机推荐

  1. POJ 3181 Dollar Dayz 【完全背包】

    题意: 给出两个数,n,m,问m以内的整数有多少种组成n的方法完全背包+大数划分 思路: dp[i][j] := 用i种价格配出金额j的方案数. 那么dp[i][0] = 1,使用任何价格配出金额0的 ...

  2. 为什么Nginx性能比Apache高

    Nginx的工作原理 nginx在启动后,会有一个master进程和多个worker进程.master进程主要用来管理worker进程,包含:接收来自外界的信号,向各worker进程发送信号,监控wo ...

  3. mysql 不区分大小写的解决

    mysql查询默认是不区分大小写的 如: select * from some_table where str=‘abc';select * from some_table where str='AB ...

  4. 配置apache和php mysql的一些问题

    关于"Windows不能在本地计算机启动Apache2.......并参考特定服务错误代码1"问题解决 apache的httpd.conf文件配置“LoadModule php5_ ...

  5. gitlab发送邮件

    1.修改配置文件,建议使用企业邮箱 #vim /etc/gitlab/gitlab.rb gitlab_rails['smtp_enable'] = true gitlab_rails['smtp_a ...

  6. MATLAB·提取图像中多个目标

    基于matlab工具箱提取图像中的多目标特征(代码如下): 代码前面部分为提取图像的边界信息,调用了后面的遍历函数Pixel_Search,函数实现方法见后~ %%ROI Testing close ...

  7. HTML5 Shiv完美解决IE(IE6/IE7/IE8)不兼容HTML5标签的方法

    这篇文章主要介绍了HTML5 Shiv完美解决IE(IE6/IE7/IE8)不兼容HTML5标签的方法,需要的朋友可以参考下 HTML5的语义化标签以及属性,可以让开发者非常方便地实现清晰的web页面 ...

  8. 004.Kickstart部署之FTP架构

    一 准备 1.1 完整架构:Kickstart+DHCP+VSFTP+TFTP+PXE 1.2 组件应用 Kickstart服务端IP:172.24.8.12 DHCP:提供客户端IP,网关,镜像路径 ...

  9. Python 函数装饰器

    首次接触到装饰器的概念,太菜啦! Python 装饰器可以大大节省代码的编写量,提升代码的重复使用率.函数装饰器其本质也是一个函数,我们可以把它理解为函数中定义了一个子函数. 例如我们有这么一个需求, ...

  10. 网页图表Highcharts实践教程之认识Highcharts

    网页图表Highcharts实践教程之认识Highcharts 认识Highcharts Highcharts是国际知名的一款图表插件.它完全使用Javascript编写实现.其结构清晰,使用简单.开 ...