Skip to content

Latest commit

 

History

History
70 lines (42 loc) · 3.41 KB

File metadata and controls

70 lines (42 loc) · 3.41 KB

十二、虚拟环境

虚拟环境是一个轻量级、自包含的 Python 安装。虚拟环境的主要动机是允许不同的项目控制已安装 Python 包的版本,而不干扰同一主机上安装的其他 Python 项目。虚拟环境包括一个目录,其中包含指向(Unix)的符号链接或现有 Python 安装(Windows)的副本,以及一个空的 site packages 目录,其中可以安装特定于此虚拟 环境的 Python 包。虚拟环境的第二个动机是,用户可以创建一个虚拟环境,而无需对其系统拥有管理员权限,从而使他们能够轻松地在本地安装软件包。第三个动机是不同的虚拟环境可以基于不同版本的 Python,这使得在同一台计算机上测试 Python 3.4 和 Python 3.5 上的代码更加容易。

如果您使用的是 Python 3.3 或更高版本,那么您的系统上应该已经安装了一个名为venv的模块。您可以通过从命令行运行来验证这一点:

$ python3 -m venv
usage: venv [-h] [--system-site-packages] [--symlinks | --copies]\
            [--clear] [--upgrade] [--without-pip]
 ENV_DIR [ENV_DIR ...]
venv: error: the following arguments are required: ENV_DIR

如果您没有安装venv,还有另一个工具

  • virtualenv环境变量——其工作原理非常相似。您可以从Python 包索引(PyPI)中获得它。我们在附录 C安装第三方软件包中解释了如何从 PyPI 安装软件包。您可以使用venvvirtualenv,尽管我们在这里将使用venv,因为它内置于 Python 的最新版本中。

创建虚拟环境

使用venv非常简单:您只需指定包含新虚拟环境的目录的路径。该工具将创建新目录并使用安装程序填充该目录:

$ python3 -m venv my_python_3_5_project_env

激活虚拟环境

创建环境后,您可以使用环境的 bin 目录中的激活脚本激活环境。在 Linux 或 macOS 上,您必须为脚本提供源代码:

$ source my_python_3_5_project_env/bin/activate

在 Windows 上,您只需运行它:

> my_python_3_5_project_env\bin\activate

执行此操作后,您的提示将更改,以提醒您处于虚拟环境中:

(my_python_3_5_project_env) $

运行 Python 时将执行的 Python 来自虚拟环境。事实上,在调用 Python 时,使用虚拟环境是迄今为止获得可预测的 Python 版本的最佳方法,而不必记住在 Python2 中使用 Python,在 python3 中使用 python3。

一旦进入虚拟环境,您就可以正常、安全地工作,因为包安装与系统 Python 和其他虚拟环境是隔离的。

停用虚拟环境

要离开虚拟环境,请使用 deactivate 命令,该命令将返回激活虚拟环境的父 shell:

(my_python_3_5_project_env) $ deactivate
$

用于处理虚拟环境的其他工具

如果你经常使用虚拟环境——我们主张你应该几乎总是在一个环境中工作——管理过多的环境本身可能会成为一件琐事。集成开发环境,如 JetBrains 的 PyCharm为创建和使用虚拟环境提供了极好的支持。在命令行上,我们推荐一个名为virtualenv wrapper的工具,一旦您完成了一些初始配置,就可以在依赖不同虚拟环境的项目之间进行切换。