虚拟本地python环境——virtualenv

来源:互联网 发布:magento block加载js 编辑:程序博客网 时间:2024/04/28 02:32

virtualenv其实就是Python版虚拟机,为你自定义一个python开发环境,当你不想要这个环境可以直接删掉然后再重新创建一个,不用再重新安装配置本地python。
官方话:
我们需要处理的基本问题是包的依赖、版本和间接权限问题。想象一下,你有两个应用,一个应用需要libfoo的版本1,而另一应用需要版本2。如何才能同时使用这些应用程序?如果您安装到的/usr/lib/python2.7/site-packages(或任何平台的标准位置)的一切,在这种情况下,您可能会不小心升级不应该升级的应用程序。
简单地说,你可以为每个项目建立不同的/独立的Python环境,你将为每个项目安装所有需要的软件包到它们各自独立的环境中。
安装(很简单)
pip install virtualenv
使用(创建一个文件夹然后在其上运行virtualenv)
mkdir nowamagic_venv
virtualenv –distribute nowamagic_venv
这里写图片描述

这里写图片描述
看一下环境对比图
这里写图片描述

virtualenv拷贝了Python可执行文件的副本,并创建一些有用的脚本和安装了项目需要的软件包,你可以在项目的整个生命周期中安装/升级/删除这些包。 它也修改了一些搜索路径,例如PYTHONPATH,以确保:
当安装包时,它们被安装在当前活动的virtualenv里,而不是系统范围内的Python路径。
当import代码时,virtualenv将优先采取本环境中安装的包,而不是系统Python目录中安装的包。
还有一点比较重要,在默认情况下,所有安装在系统范围内的包对于virtualenv是可见的。 这意味着如果你将simplejson安装在您的系统Python目录中,它会自动提供给所有的virtualenvs使用。 这种行为可以被更改,在创建virtualenv时增加 –no-site-packages 选项的virtualenv就不会读取系统包,如下:
virtualenv nowamagic_venv –no-site-packages
使用方法
常用的参数有:
-p:指定一个版本python环境;通常当你的系统中安装了多个python版本时会用到;默认情况下virtualenv会优先选取它的宿主python环境,即它安装在那个python版本下就会默认选择哪个版本作为默认python隔离环境。

–no-site-packages:不使用系统环境的python安装包,即隔离包中不能使用真实python环境的安装包;当前版本这个选项是默认的。
–system-site-packages:与上面相反,使隔离环境能访问系统环境的python安装包
–distribute:copy一个python环境的分支,默认会安装setup、pip、wheel等基础模块

0 0
原创粉丝点击