5. Additional Tools and Scripts

5.1. pyvenv - 创建虚拟环境

通过执行pyvenv脚本完成virtual environments的创建:

pyvenv /path/to/new/virtual/environment

运行此命令创建目标目录(创建任何不存在的父目录),并使用home键将pyvenv.cfg文件放置到Python目录安装命令从运行。它还会创建一个bin(或Windows上的Scripts)子目录,其中包含python它还创建了一个(最初为空的)lib/pythonX.Y/site-packages子目录(在Windows上,这是Lib\site-packages)。

在Windows上,如果没有相关的PATH和PATHEXT设置,则可能需要调用pyvenv脚本:

c:\Temp>c:\Python35\python c:\Python35\Tools\Scripts\pyvenv.py myenv

或等效地:

c:\Temp>c:\Python35\python -m venv myenv

该命令如果以-h运行,将显示可用的选项:

usage: venv [-h] [--system-site-packages] [--symlinks | --copies] [--clear]
            [--upgrade] [--without-pip]
            ENV_DIR [ENV_DIR ...]

Creates virtual Python environments in one or more target directories.

positional arguments:
  ENV_DIR             A directory to create the environment in.

optional arguments:
  -h, --help             show this help message and exit
  --system-site-packages Give the virtual environment access to the system
                         site-packages dir.
  --symlinks             Try to use symlinks rather than copies, when symlinks
                         are not the default for the platform.
  --copies               Try to use copies rather than symlinks, even when
                         symlinks are the default for the platform.
  --clear                Delete the contents of the environment directory if it
                         already exists, before environment creation.
  --upgrade              Upgrade the environment directory to use this version
                         of Python, assuming Python has been upgraded in-place.
  --without-pip          Skips installing or upgrading pip in the virtual
                         environment (pip is bootstrapped by default)

根据如何调用venv功能,使用消息可以稍微改变,例如,引用pyvenv而不是venv

在版本3.4中更改:默认安装pip,添加了--without-pip--copies选项

在版本3.4中已更改:在早期版本中,如果目标目录已存在,则会出现错误,除非--clear--upgrade现在,如果指定了现有目录,则删除其内容,并且处理该目录,就好像它是新创建的。

The created pyvenv.cfg file also includes the include-system-site-packages key, set to true if venv is run with the --system-site-packages option, false otherwise.

除非给出--without-pip选项,否则将调用ensurepip以将pip引导到虚拟环境中。

多个路径可以给予pyvenv,在这种情况下,将在每个提供的路径根据给定的选项创建一个相同的virtualenv。

一旦创建了venv,它可以使用venv的二进制目录中的脚本“激活”。脚本的调用是平台特定的:

平台贝壳命令激活虚拟环境
Posixbash / zsh$ source / bin / activate
$。/bin/activate.fish
csh / tcsh$ source /bin/activate.csh
视窗cmd.exeC:\> \ Scripts \ activate.bat
PowerShellPS C:\> \ Scripts \ Activate.ps1

您不具体需要来激活环境;激活只是将venv的二进制目录添加到你的路径,所以“python”调用venv的Python解释器,你可以运行安装的脚本,而不必使用他们的完整路径。但是,安装在venv中的所有脚本都应该可以在不激活的情况下运行,并且可以自动运行venv的Python。

您可以通过在shell中键入“deactivate”来停用venv。确切的机制是特定于平台的:例如,Bash激活脚本定义了一个“deactivate”函数,而在Windows上有称为deactivate.batDeactivate.ps1

新版本3.4: fishcsh激活脚本。