第29章-安装软件包

当您刚开始作为一个Python程序员时,您不会考虑如何安装外部包或模块。但当这种需要出现时,你会想知道如何在匆忙中!python包可以在互联网上找到。大多数流行的方法都可以在python包索引(pypi)中找到。您还可以在Github、BitBucket和Google代码上找到许多python包。在本文中,我们将介绍以下安装python包的方法:

  • 从源安装

  • easy_install

  • 匹普

  • 安装软件包的其他方法

从源安装

从源代码安装是一项很好的技能。有一些更简单的方法,我们稍后将在文章中讨论。但是,有些软件包必须从源代码处安装。例如,要使用 easy_install ,您需要先安装 设置工具 .为此,您需要从python包索引下载tar或zip文件,并将其解压缩到系统的某个位置。然后寻找 setup.py 文件。打开终端会话并将目录更改为包含安装文件的文件夹。然后运行以下命令:

python setup.py install

如果python不在您的系统路径上,您将收到一条错误消息,说明 Python 找不到命令或命令是未知应用程序。您可以使用到python的完整路径来调用这个命令。如果您在Windows上,您可以这样做:

c:\python34\python.exe setup.py install

如果您安装了多个版本的python,并且需要将包安装到不同的版本,那么这个方法特别方便。您所需要做的就是键入正确的Python版本的完整路径,并针对它安装包。

一些包包含C代码,例如C头文件,需要编译这些文件才能正确安装包。在Linux上,您通常已经安装了C/C++编译器,您可以以最小的头痛来安装这个包。在Windows上,需要安装正确版本的Visual Studio才能正确编译包。有人说你也可以用明格,但我还没有找到一种方法让它发挥作用。如果该包已经预制作了Windows Installer,请使用它。那么您就不必再费心编译了。

使用简易安装

一旦你拥有 设置工具 已安装,您可以使用 easy_install .您可以在python安装中找到它 脚本 文件夹。一定要将scripts文件夹添加到系统路径中,这样您就可以在命令行上调用easy-install,而不必指定其完整路径。尝试运行以下命令以了解所有轻松安装的选项:

easy_install -h

如果要安装易于安装的软件包,只需执行以下操作:

easy_install package_name

easy-install将尝试从pypi下载包,编译它(如果需要)并安装它。如果你进入你的 Python site-packages 目录,您将找到一个名为 easy-install.pth 它将包含一个条目,用于安装所有易于安装的软件包。python使用此文件帮助导入模块或包。

您还可以通过URL或计算机上的路径来区分易于安装。它还可以直接从tar文件安装包。您可以使用轻松安装来升级软件包 -upgrade (或) -U )。最后,您可以使用轻松安装来安装python-eggs。您可以在pypi和其他位置找到egg文件。 egg 基本上是一个特殊的压缩文件。实际上,如果将扩展名改为.zip,就可以解压缩egg文件。

以下是一些例子:

easy_install -U SQLAlchemy
easy_install http://example.com/path/to/MyPackage-1.2.3.tgz
easy_install /path/to/downloaded/package

轻松安装有一些问题。它将尝试在完成下载之前安装一个包。无法使用“轻松安装”卸载软件包。您必须自己删除包,并通过删除包的条目来更新easy-install.pth文件。出于这些原因和其他原因,在Python社区中存在创建不同内容的活动,这导致了 pip 即将出生。

使用PIP

PIP程序实际上与Python3.4一起提供。如果您有一个旧版本的python,那么您将需要手动安装pip。安装PIP与我们之前讨论的有点不同。您仍然可以访问pypi,但不会下载包并运行其setup.py脚本,而是要求您下载一个名为 get-pip.py .然后您需要执行以下操作:

python get-pip.py

这将安装 设置工具 或者是另一种设置工具 分配 如果其中一个尚未安装。它还将安装PIP。PIP与CPython版本2.6、2.7、3.1、3.2、3.3、3.4以及Pypy一起工作。您可以使用pip安装任何易于安装的东西,但调用有点不同。要安装软件包,请执行以下操作:

pip install package_name

要升级包,请执行以下操作:

pip install -U PackageName

你可能想打电话 pip -h 获取PIP所能做的所有事情的完整列表。pip可以安装一个简单的安装程序,但不能安装python 格式。轮子是一个压缩格式的归档文件,它有一个特殊格式的文件名和 .whl 扩展。您还可以通过自己的命令行实用程序安装轮子。另一方面,pip不能安装 egg 。如果您需要安装一个 egg ,您将希望使用易于安装。

关于依赖关系的注释

使用的诸多好处之一 easy_installpip 如果包中指定了依赖项, setup.py 脚本,两者 easy_installpip 也将尝试下载并安装它们。当您尝试新软件包时,如果您没有意识到软件包A依赖于软件包B、C和D,那么这可以减轻很多挫折。 easy_installpip 你不用再担心了。

总结

此时,您应该能够安装所需的任何包,假设该包支持您的Python版本。Python程序员可以使用很多工具。虽然现在用python进行打包有点令人困惑,但是一旦您知道如何使用适当的工具,通常可以得到想要安装或打包的内容。我们将在第五部分中更多地关注创建我们自己的包、 egg 和轮子。