【问题标题】:What is Building and Installing?什么是构建和安装?
【发布时间】:2013-11-14 04:58:26
【问题描述】:

这可能是一个有一个非常简单直接的答案的问题,但是,尽管有几年的编程经验,但由于某种原因,我仍然不太了解“构建”的确切概念,然后安装”。我知道如何使用它们并且经常使用它们,但不知道后台发生的确切过程......

我浏览过网络、维基百科等……但没有一个简单的答案,我在这里也找不到。

我试图理解的一个很好的例子是向 python 添加新模块: http://docs.python.org/2/install/index.html#how-installation-works

它说“构建命令负责将要安装的文件放入构建目录”

然后对于安装命令:"构建命令运行后(无论是显式运行,还是安装命令为你执行),安装命令的工作都比较简单:all只需将 build/lib(或 build/lib.plat)下的所有内容复制到您选择的安装目录。”

所以基本上这是在说: 1.将所有内容复制到构建目录,然后... 2.将所有内容复制到安装目录

解释中一定有一个过程遗漏了……编译?

希望能提供一些简单的不太技术性但尽可能详细的答案:)

希望我不是唯一一个不知道详细答案的人...

谢谢!

食肉

【问题讨论】:

    标签: python build installation


    【解决方案1】:

    构建意味着在沙箱位置将源代码编译为二进制文件,如果出现问题,它不会影响您的系统,例如源代码目录中的build 子目录。

    安装意味着将构建的二进制文件从build 子目录复制到系统路径中的某个位置,以便轻松访问它们。这很少通过直接复制命令来完成,通常由一些可以跟踪创建的文件并在以后轻松卸载它们的包管理器完成。

    通常,构建命令会完成所需的所有编译和链接,但 Python 是一种解释型语言,因此如果库中只有纯 Python 文件,则构建中没有编译步骤。实际上,所有内容都被复制到构建目录,然后再次复制到最终位置。只有当库依赖于需要编译的其他语言编写的代码时,您才会有一个编译步骤。

    【讨论】:

    • Python 编译; .pyc(字节码缓存文件)在构建步骤中创建。
    • 是的,当然,但我认为解释会使答案复杂化。
    【解决方案2】:

    你想为你的客厅换一把新椅子,你想自己做。您浏览目录并订购一堆零件。当它们到达您的门口时,您不能立即使用它们。您必须在您的工作室建造椅子。涂了一点肘部润滑脂后,您可以在里面坐下。然后,您将椅子安装在客厅的一个方便坐下的地方。

    椅子是您要使用的程序。它作为源代码到达你家。您可以通过将其编译为可运行的程序来构建它。您可以通过使其更易于使用来安装它。

    【讨论】:

    • 你可以让它“在抹了点肘部润滑脂后,你试着坐在里面看看它有多舒服,等等(测试)。”
    【解决方案3】:

    您所指的构建和安装命令来自 setup.py 文件对吗?

    Setup.py (http://docs.python.org/2/distutils/setupscript.html)

    此文件由 Python 的第 3 方应用程序/扩展创建。它们不属于:

    1. Python 源代码(一堆 c 文件等)
    2. 与 Python 捆绑在一起的 Python 库

    当开发人员为 python 创建一个他想与世界共享的库时,他会创建一个 setup.py 文件,以便该库可以安装在任何具有 python 的计算机上。也许这是缺少的步骤

    Setup.py sdist

    这将创建一个 python 模块(tar.gz 文件)。这样做是将python库使用的所有文件复制到一个文件夹中。为模块创建 setup.py 文件并将所有内容存档,以便可以在其他地方构建库。

    Setup.py 构建

    这会将 python 模块重新构建到一个库中(专门针对这个操作系统)。

    您可能知道,python 库最初来自的计算机与您正在安装的库不同。

    1. 它可能有不同版本的 python
    2. 它可能有不同的操作系统
    3. 它可能有不同的处理器/主板/等

    由于上面列出的所有原因,该代码无法在另一台计算机上运行。因此setup.py sdist 创建了一个模块,其中仅包含在另一台计算机上重建库所需的源文件。

    setup.py 的作用与 makefile 的作用完全相同。它编译源代码/创建所有这些东西的库。

    现在我们在库中拥有了我们需要的所有文件的副本,它们可以在我们的计算机/操作系统上运行。

    Setup.py 安装

    太好了,我们有所有需要的文件。但他们不会工作。为什么?好吧,它们必须被添加到 Python 中,这就是原因。这就是 install 的用武之地。现在我们有一个库的本地副本,我们需要将它安装到 python 中,以便您可以像这样使用它:

    import mycustomlibrary
    

    为了做到这一点,我们需要做几件事,包括:

    1. 在我们的 python 版本中将文件复制到它们的库文件夹中。
    2. 确保可以使用import 命令导入库
    3. 为此库运行任何特殊的安装说明。 (设置路径等)

    这是任务中最复杂的部分。如果我们的库使用 BeautifulSoup 会怎样?这不是 Python 库的一部分。我们必须以一种方式安装它,以便我们的库和其他任何人都可以使用 BeautifulSoup 而不会相互干扰。

    如果python安装在其他地方怎么办?如果它安装在有很多用户的服务器上怎么办?

    Install 透明地处理所有这些问题。所做的是使我们刚刚构建的库能够运行。您所要做的就是使用import 命令,其余的由安装处理。

    【讨论】:

      猜你喜欢
      • 2015-08-17
      • 1970-01-01
      • 2021-01-25
      • 2011-08-26
      • 2017-05-04
      • 2014-08-10
      • 2015-10-07
      • 2013-04-28
      相关资源
      最近更新 更多