【问题标题】:Reasons to use distutils when packaging C/Python project打包 C/Python 项目时使用 distutils 的原因
【发布时间】:2009-10-06 06:17:53
【问题描述】:

我有一个包含 Python 和 C 代码的开源项目。我想知道 distutils 对我有什么用处,因为我打算做一个 ubuntu/debian 包。 C 代码不是我可以或不想用作 Python 扩展的东西。 C 和 Python 程序通过 localhost 与 TCP/IP 通信。

所以这里的底线是,当我学习打包时,distutils 特定文件的使用是否只会让我更加困惑,因为我不能将我的 C 代码用作 Python 扩展?还是应该将我的 C 和 Python 功能划分为单独的项目,以便更好地理解打包概念?

【问题讨论】:

    标签: python c packaging distutils


    【解决方案1】:

    distutils 可用于安装最终用户程序,但它在用于 Python 库时最有用,因为它可以创建源包并将它们安装在正确的位置。为此,我会说它或多或少是必需的。

    但是对于最终用户 Python 程序,您也可以使用 make 或任何您喜欢和习惯的方式,因为您不需要在 Python 站点包目录中安装任何代码,也不需要将您的代码到 PyPI 上,不需要从其他 Python 代码访问。

    与其他工具相比,我认为 distutils 在安装最终用户程序时不会更加复杂。正如卡特曼所说,所有这些安装/打包工具都非常复杂。

    【讨论】:

    • (请注意,我现在可能会从与包装相关的人那里得到非常愤怒的回答。这很正常。包装就像炼金术:由痴迷的男人完成的黑暗艺术,他们有点偏执并且非常疯狂来自烟雾。不同的包装理念之间有很多内讧,其中每个工具至少有一个。)
    【解决方案2】:

    因为它使用统一的python setup.py install 命令? distutils 还是 setuptools?无论如何,只需使用其中之一即可。

    对于开发来说,它也非常有用,因为您不必关心在哪里可以找到这样那样的依赖项。只要它是标准的 Python/基本系统库的东西,setup.py 应该会为您找到它。使用setup.py,您不再需要./configure 的东西或丑陋的自动工具来创建巨大的Makefile。 它只是工作(tm)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-09-23
      • 2010-12-30
      • 1970-01-01
      • 2021-12-26
      • 1970-01-01
      • 2011-11-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多