您所指的构建和安装命令来自 setup.py 文件对吗?
Setup.py (http://docs.python.org/2/distutils/setupscript.html)
此文件由 Python 的第 3 方应用程序/扩展创建。它们不属于:
- Python 源代码(一堆 c 文件等)
- 与 Python 捆绑在一起的 Python 库
当开发人员为 python 创建一个他想与世界共享的库时,他会创建一个 setup.py 文件,以便该库可以安装在任何具有 python 的计算机上。也许这是缺少的步骤
Setup.py sdist
这将创建一个 python 模块(tar.gz 文件)。这样做是将python库使用的所有文件复制到一个文件夹中。为模块创建 setup.py 文件并将所有内容存档,以便可以在其他地方构建库。
Setup.py 构建
这会将 python 模块重新构建到一个库中(专门针对这个操作系统)。
您可能知道,python 库最初来自的计算机与您正在安装的库不同。
- 它可能有不同版本的 python
- 它可能有不同的操作系统
- 它可能有不同的处理器/主板/等
由于上面列出的所有原因,该代码无法在另一台计算机上运行。因此setup.py sdist 创建了一个模块,其中仅包含在另一台计算机上重建库所需的源文件。
setup.py 的作用与 makefile 的作用完全相同。它编译源代码/创建所有这些东西的库。
现在我们在库中拥有了我们需要的所有文件的副本,它们可以在我们的计算机/操作系统上运行。
Setup.py 安装
太好了,我们有所有需要的文件。但他们不会工作。为什么?好吧,它们必须被添加到 Python 中,这就是原因。这就是 install 的用武之地。现在我们有一个库的本地副本,我们需要将它安装到 python 中,以便您可以像这样使用它:
import mycustomlibrary
为了做到这一点,我们需要做几件事,包括:
- 在我们的 python 版本中将文件复制到它们的库文件夹中。
- 确保可以使用
import 命令导入库
- 为此库运行任何特殊的安装说明。 (设置路径等)
这是任务中最复杂的部分。如果我们的库使用 BeautifulSoup 会怎样?这不是 Python 库的一部分。我们必须以一种方式安装它,以便我们的库和其他任何人都可以使用 BeautifulSoup 而不会相互干扰。
如果python安装在其他地方怎么办?如果它安装在有很多用户的服务器上怎么办?
Install 透明地处理所有这些问题。所做的是使我们刚刚构建的库能够运行。您所要做的就是使用import 命令,其余的由安装处理。