有大量关于如何做到这一点的信息,但由于“给猫剥皮的方法不止一种”,所有的教程/手册都涵盖了一些过程似乎做了一些与其他教程不同的假设,我仍然没有掌握它。
到目前为止,这是我认为我理解的。
- 我的最终目标应该是创建一个“二进制”.deb 包。这样的包将是平台无关的(32/64 位),因为所有 Python 程序都是如此。
- 要创建“二进制”包,我首先需要创建一个源包。
- 要创建源代码包,我可以使用
CDBS
或debhelper
。 Debhelper 是初学者的推荐方式。 - 创建源代码包的核心是在源目录中的
DEBIAN
目录中填充许多文件,这些文件说明需要复制文件的位置、它们受哪些版权和许可方案的约束、什么他们拥有的依赖项等等...... - 第 4 步可以在很大程度上自动化
dh_make
命令 if Python 源代码还带有 distutils 的setup.py
脚本。
现在我的问题:
- 我对流程的理解是否正确?我是否遗漏了什么,或者我做错了什么?
- 第 5 步确实让我更加困惑:具体而言,我最不清楚的两点是:
- 如何编写安装独立程序的
setup.py
脚本? 编辑: 作者:独立程序 我的意思是一个旨在供桌面用户使用的程序(与 module 不同,我理解它是一个导入后供其他软件使用的功能集合)。在我的具体情况下,我实际上需要两个这样的“程序”:主软件和一个单独的实用程序(实际上是第二个“程序”,它应该与另一个程序在同一个包中)。 - 这种 DEB 包脚本的特殊性是什么?官方文档似乎只处理 RPM 和 Windows 的东西......
- 如何编写安装独立程序的
顺便说一句:这些是迄今为止我能找到的最好的信息来源。如果你有比这更好的,请分享! :)
- Ubuntu's Python packaging guide
- Creating a .deb package from a python setup.py (它显示这些步骤,但它并没有解释足以让我跟随)
- ShowMeDo video on "creating a .deb package out of a python program" (它似乎不是最新的 - 如果我做对了 - 将生成供个人使用的包,没有依赖关系 并且没有签名的变更日志和其他使其与 Debian 政策不兼容的关键数据)。
最佳答案
看起来像 stdeb会做你想做的。
另外,对于安装脚本,我强烈推荐distribute's console_scripts入口点支持。
关于python - 有没有一种标准的方法来创建用于分发 Python 程序的 Debian 包?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7110604/