geekdoc-python-zh/docs/pythonlibrary/python-101-installing-packa...

123 lines
6.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Python 101 -安装包
> 原文:<https://www.blog.pythonlibrary.org/2014/03/27/python-101-installing-packages/>
当您第一次开始成为 Python 程序员时您不会考虑您可能需要如何安装外部包或模块。但是当这种需求出现时你会很快想知道如何去做Python 包在互联网上随处可见。大部分流行的都可以在 [Python 包索引(PyPI)](https://pypi.python.org/pypi) 上找到。你还会在 github、bitbucket、Google code 上找到很多 Python 包。在本文中,我们将介绍以下安装 Python 包的方法:
* 从源安装
* 简单安装
*
* 安装软件包的其他方式
* * *
### 从源安装
从源代码安装是一项很好的技能。还有更简单的方法,我们将在本文后面讨论。然而,有一些软件包您必须从源代码安装。例如,要使用 **easy_install** ,您需要首先安装 [setuptools](https://pypi.python.org/pypi/setuptools) 。为此,您需要下载 tar 或 zip 文件,并将其解压缩到系统中的某个位置。然后寻找 **setup.py** 文件。打开终端会话,将目录切换到包含安装文件的文件夹。然后运行以下命令:
```py
python setup.py install
```
如果 python 不在您的系统路径上您将收到一条错误消息指出“Python”命令未找到或者是一个未知的应用程序。您可以使用 Python 的完整路径来调用此命令。如果你在 Windows 上,你可以这样做:
```py
c:\python34\python.exe setup.py install
```
如果您安装了多个版本的 Python并且需要将包安装到不同的版本上这种方法尤其方便。您所需要做的就是输入正确 Python 版本的完整路径,并根据它安装软件包。
有些软件包包含 C 代码,例如 C 头文件,需要编译这些文件才能正确安装软件包。在 Linux 上,你通常已经安装了一个 C/C++编译器,你可以轻松地安装这个包。在 Windows 上,您需要安装正确版本的 Visual Studio 才能正确编译该包。有些人说你也可以使用 MingW但是我还没有找到一种方法让它工作。如果软件包中已经预先制作了 Windows installer请使用它。那你就完全不用乱搞编译了。
* * *
### 使用简易安装
一旦安装了 setuptools您就可以使用 **easy_install** 。你可以在你的 Python 安装的**脚本**文件夹中找到它。请确保将 Scripts 文件夹添加到您的系统路径中,这样您就可以在命令行上调用 easy_install而无需指定其完整路径。尝试运行以下命令来了解 easy_install 的所有选项:
```py
easy_install -h
```
当你想用 easy_install 安装包时,你所要做的就是:
```py
easy_install package_name
```
easy_install 将尝试从 PyPI 下载软件包,编译它(如果需要)并安装它。如果你进入你的 Python 的 **site-packages** 目录,你会发现一个名为 **easy-install.pth** 的文件,它将包含所有用 easy_install 安装的包的条目。Python 使用这个文件来帮助导入模块或包。
您还可以告诉 easy_install 从 URL 或您计算机上的路径进行安装。它还可以直接从 tar 文件安装软件包。你可以使用 easy_install 通过使用 **- upgrade** (或者-U)来升级一个包。最后,您可以使用 easy_install 来安装 Python eggs。您可以在 PyPI 和其他位置找到 egg 文件。egg 基本上是一个特殊的 zip 文件。事实上如果您将扩展名更改为。zip可以解压 egg 文件。
以下是一些例子:
```py
easy_install -U SQLAlchemy
easy_install http://example.com/path/to/MyPackage-1.2.3.tgz
easy_install /path/to/downloaded/package
```
easy_install 存在一些问题。它会在下载完成前尝试安装一个软件包。无法使用 easy_install 卸载软件包。您必须自己删除软件包,并通过删除软件包中的条目来更新 easy-install.pth 文件。出于这些和其他原因Python 社区中出现了创造不同事物的运动,这导致了 **pip** 的诞生。
* * *
### 使用画中画
安装 pip 与我们之前讨论的稍有不同。您仍然可以访问 PyPI但是不是下载包并运行它的 setup.py 脚本,而是要求您下载一个名为 **get-pip.py** 的脚本。然后,您需要通过执行以下操作来执行它:
```py
python get-pip.py
```
这将安装 setuptools 或 setuptools 的替代产品 **distribute** ,如果其中一个尚未安装的话。它还将安装 pip。pip 与 CPython 版本 2.6、2.7、3.1、3.2、3.3、3.4 以及 pypy 一起工作。您可以使用 pip 来安装 easy_install 可以安装的任何东西,但是调用有点不同。要安装软件包,请执行以下操作:
```py
pip install PackageName
```
要升级软件包,您需要执行以下操作:
```py
pip install -U PackageName
```
您可能想调用“pip -h”来获得 pip 可以做的所有事情的完整列表。pip 可以安装而 easy_install 不能安装的一个东西是 Python wheel 格式。wheel 是一个 ZIP 格式的归档文件具有特殊格式的文件名和。whl 分机。您也可以通过自己的命令行实用程序安装轮子。另一方面pip 不能安装鸡蛋。如果你需要安装一个 egg你会希望使用 easy_install。
* * *
### 关于依赖性的一个注记
使用 easy_install 和 pip 的众多好处之一是,如果软件包在其 setup.py 脚本中指定了依赖项easy_install 和 pip 也会尝试下载并安装它们。当您尝试新的软件包时,这可以减轻很多挫折,您没有意识到软件包 A 依赖于软件包 B、C 和 d。
* * *
### 包扎
现在,您应该能够安装您需要的任何包了,假设这个包支持您的 Python 版本。Python 程序员可以使用很多工具。虽然现在 Python 中的打包有点混乱,但是一旦你知道如何使用合适的工具,你通常可以得到你想要安装或打包的东西。
* * *
### 附加阅读
* PyPI [安装工具页](https://pypi.python.org/pypi/setuptools)
* [简易安装指南](https://pythonhosted.org/setuptools/easy_install.html)
* PyPI [pip 页面](https://pypi.python.org/pypi/pip)
* 车轮[文档](http://wheel.readthedocs.org/en/latest/)
* [Python 打包用户指南](https://python-packaging-user-guide.readthedocs.org/en/latest/index.html)
* [分发包](https://pypi.python.org/pypi/distribute/0.7.3)