第35章-虚拟环境

虚拟环境对于测试软件非常方便。在编程界也是如此。IanBicking创建了virtualenv项目,这是一个用于创建独立的Python环境的工具。您可以使用这些环境来测试您的软件的新版本、您所依赖的软件包的新版本,或者像沙盒一样尝试一些新软件包。当不能将文件复制到站点包中时,也可以将virtualenv用作工作区,因为它位于共享主机上。当使用virtualenv创建虚拟环境时,它会创建一个文件夹,并将python连同一个site packages文件夹和其他几个文件夹一起复制到其中。它还安装了PIP。一旦您的虚拟环境处于活动状态,就像使用普通的Python一样。完成后,只需删除要清理的文件夹即可。不要弄脏,不要大惊小怪。或者,您可以继续使用它进行开发。

在本章中,我们将花一些时间了解virtualenv以及如何使用它来创造我们自己的魔力。

安装

首先,您可能需要安装virtualenv。您可以使用pip或easy-install来安装它,也可以从他们的网站下载virtualenv.py文件,并使用其 setup.py 脚本。

如果您有python 3.4,您会发现实际上您有 venv 模块,它遵循与 虚拟现实 包裹。然而,本章将只关注virtualenv包。

创建虚拟环境

使用virtualenv包创建虚拟沙盒非常简单。您需要做的就是:

python virtualenv.py FOLDER_NAME

FOLDER_NAME 是您希望沙盒转到的文件夹的名称。在我的Windows7机器上 C:\Python34\Scripts 添加到我的路径,这样我就可以调用 virtualenv.py 没有python部分的文件夹名称。如果你不通过任何东西,那么你会得到一个选项列表打印在你的屏幕上。假设我们创建了一个名为 沙箱 .我们如何使用它?嗯,我们需要 激活 .它。方法如下:

在POSIX上,您将在Windows上执行源bin/activate,而在Windows上,您将执行源bin/activate。 .\path\to\env\Scripts\activate .在命令行上。让我们来看看这些步骤。我们将在桌面上创建沙盒文件夹,这样您就可以看到一个示例。这是我的机器上的样子:

C:\Users\mdriscoll\Desktop>virtualenv sandbox
New python executable in sandbox\Scripts\python.exe
Installing setuptools................done.
Installing pip...................done.

C:\Users\mdriscoll\Desktop>sandbox\Scripts\activate
(sandbox) C:\Users\mdriscoll\Desktop>

您将注意到,一旦您的虚拟环境被激活,您将看到您的提示更改,包括您创建的文件夹名称的前缀,即 沙箱 在这种情况下。这让你知道你在使用沙盒。现在,您可以使用PIP将其他包安装到您的虚拟环境中。完成后,只需调用deactivate脚本退出环境。

在创建虚拟游乐场时,有几个标志可以传递给virtualenv,您应该知道这些标志。例如,您可以使用 -system-site-packages 从默认的python站点包继承包。如果要使用分发工具而不是安装工具,可以将virtualenv传递给 -distribute 旗帜。

virtualenv还为您提供了一种只安装库,但使用系统python本身运行库的方法。根据文档,您只需创建一个特殊的脚本来完成它。

还有一个整洁的(实验性的)标志,叫做 -relocatable 可用于使文件夹可重新定位。然而,在撰写本文时,这在Windows上不起作用,所以我无法测试它。

最后,有一个 -extra-search-dir 用于保持虚拟环境脱机的标志。基本上,它允许您在搜索路径中添加一个目录,以查找PIP或Easy_安装可以从中安装的分发版。这样,您就不需要访问Internet来安装软件包。

总结

此时,您应该能够自己使用virtualenv。在这一点上还有一些其他的项目值得一提。有道格·海尔曼的 虚拟环境包装 使创建、删除和管理虚拟环境更加容易的库,然后 zc.buildout 这可能是最接近可以称为竞争对手的virtualenv。我建议把它们都检查出来,因为它们可能会在您的编程冒险中帮助您。