virtualenv
is a tool to create isolated Python environments.
virtualenv是创建独立Python环境的工具。
virtualenv的官方文档网站:https://virtualenv.pypa.io/en/stable/
安装
用pip全局安装(如果全局安装了pip 1.3或更高版本):
$ [sudo] pip install virtualenv
或者获取最新的未发布的开发版本:
$ [sudo] pip install https://github.com/pypa/virtualenv/tarball/develop
从源代码全局安装版本XX:
$ curl -O https://pypi.python.org/packages/source/v/virtualenv/virtualenv-X.X.tar.gz
$ tar xvfz virtualenv-X.X.tar.gz
$ cd virtualenv-X.X
$ [sudo] python setup.py install
要使用从本地来源:
$ curl -O https://pypi.python.org/packages/source/v/virtualenv/virtualenv-X.X.tar.gz
$ tar xvfz virtualenv-X.X.tar.gz
$ cd virtualenv-X.X
$ python virtualenv.py myVE
用法
Virtualenv有一个基本的命令:
$ virtualenv ENV
ENV
放置新虚拟环境的目录在哪里?它有许多通常的效果(可以通过许多选项修改):
ENV/lib/
并ENV/include/
创建,包含一个新的virtualenv python的支持库文件。安装在这个环境中的软件包将存在于下ENV/lib/pythonX.X/site-packages/
。ENV/bin
被创建,其中可执行文件生活 - 显然是一个新的 Python。因此,运行一个脚本 将在这个virtualenv的python下运行该脚本。#! /path/to/ENV/bin/python
- 安装了至关重要的软件包pip和setuptools,这些软件包允许将其他软件包轻松安装到环境中。这个关联的点可以从中运行
ENV/bin/pip
。
激活脚本
在新创建的virtualenv中,还会有一个激活的 shell脚本。对于Windows系统,为命令提示符和Powershell提供了激活脚本。
在Posix系统上,这个驻留在/ENV/bin/
,所以你可以运行:
$ source bin/activate
对于某些shell(例如最初的Bourne Shell),您可能需要使用命令,当源不存在时。还有一些其他shell的独立激活文件,如csh和fish。 bin/activate
应该为bash / zsh / dash工作。
这会改变你$PATH
的第一个入口,就是virtualenv的 bin/
目录。(你必须使用source
它,因为它就地改变你的shell环境。)这就是它所做的一切; 这纯粹是一种方便。如果您直接从virtualenv的bin/
目录运行脚本或python解释器(例如path/to/ENV/bin/pip
或/path/to/ENV/bin/python-script.py
),则无需激活。
该activate
脚本还将修改您的shell提示符以指示当前哪个环境处于活动状态。要禁用此行为,请参阅 VIRTUAL_ENV_DISABLE_PROMPT
。
要撤消对路径的这些更改(和提示),只需运行:
$ deactivate
在Windows上,等效的激活脚本位于该Scripts
文件夹中:
> \path\to\env\Scripts\activate
然后输入deactivate
以撤消更改。
根据您的活动shell(CMD.exe或Powershell.exe),Windows将使用activate.bat或activate.ps1(根据需要)来激活虚拟环境。如果使用Powershell,请参阅下面有关代码签名的注意事项。
移除环境
删除虚拟环境只需通过停用虚拟环境并删除环境文件夹及其所有内容即可完成:
(ENV)$ deactivate
$ rm -r /path/to/ENV
在windows下直接del ENV即可
Windows Notes
在的virtualenv中的一些路径是略有不同的Windows:Windows上的脚本和可执行文件中去ENV\Scripts\
,而不是ENV/bin/
和图书馆去ENV\Lib\
,而不是ENV/lib/
。
要在Windows上有空格的路径下创建virtualenv,您需要安装win32api库。
不使用Virtualenv bin/python
有时你不能或不想使用由virtualenv创建的Python解释器。例如,在mod_python或mod_wsgi 环境中,只有一个解释器。
幸运的是,这很容易。您必须使用自定义Python解释器来 安装库。但要使用库,你必须确保路径是正确的。脚本可用于更正路径。您可以像设置环境一样:
activate_this = '/path/to/env/bin/activate_this.py'
execfile(activate_this, dict(__file__=activate_this))
这将改变sys.path
甚至改变sys.prefix
,但也允许你使用现有的解释器。sys.path
在全局项目之前,环境中的项目将首先显示。但是,全局项目总是可以访问的(就像该--system-site-packages
标志已被用于创建环境一样,无论它是否是)。而且,这无法撤销其他环境或已导入模块的激活。例如,您不应该尝试在Web请求之前激活环境; 你应该尽早地激活一个环境,而不是在这个过程中再做一次。