在试图解决这个问题时,我遇到了以下问题。
我有一个安装到/usr/lib/
. 但是我需要将此脚本放入构建系统中,以便可以使用我的包。
任何帮助,将不胜感激。虽然我之前在编写 C++ 应用程序时使用过 Makefile,但我从未为 Python 文件创建过任何类型的 Makefile(我什至不知道从哪里开始)。
我将如何为我的应用程序设置构建系统?
在试图解决这个问题时,我遇到了以下问题。
我有一个安装到/usr/lib/
. 但是我需要将此脚本放入构建系统中,以便可以使用我的包。
任何帮助,将不胜感激。虽然我之前在编写 C++ 应用程序时使用过 Makefile,但我从未为 Python 文件创建过任何类型的 Makefile(我什至不知道从哪里开始)。
我将如何为我的应用程序设置构建系统?
好吧,就像我在另一个问题上解释的那样,您不需要构建系统,在这种特殊情况下,没有构建系统可能会更好。
然而,最标准的一个是distutils。只需提供元数据(即名称、描述等)和(python)包、模块和脚本的列表(它们都是可选的),就完成了。
最后,如果你想从你的项目中生成一个 debian 包,那么你可以很容易地通过使用
python-stdeb
(usesdh7
,我更喜欢) 或python-mkdebian
(usescdbs
) 来做到这一点。这些工具之间还有很多不同之处,但我会让您自己发现它们。请注意,两者都需要使用 distutils。(python-mkdebian
是python-distutils-extra
Ubuntu 包的一部分,我用-extra
的不多,但如果你愿意,你也可以试试)Scons是一个构建系统,它使用 Python 作为它的语言(我通常更喜欢它而不是任何项目的 makefile),我认为它应该能够完成你想做的事情。
它有一个非常好的用户指南。
Umang 有正确的答案,尽管可能不像您作为一个完整的初学者所需要的那样详细。
对于 Python 程序,您需要从创建
setup.py
文件开始。该文件的大部分将是一个调用distutils.core.setup
- 这将在distutils 文档的第 2 部分中详细讨论。Python 的所有其他打包系统(例如 py2exe、setuptools 或 Distribute)都构建在
distutils
包之上,通常以setup()
某种方式扩展(使用附加参数或命令)。在将其转换为 Ubuntu 软件包之前,您可以通过运行
sudo setup.py install
. 它应该将文件安装到它们的预期位置;如果不是,您可能需要检查您的配置。特别是,distutils
文档的第 2.5 节(脚本)和 2.6 节(包数据)可能适用于您的情况。完成后,您可以根据Ubuntu Packaging Guide for Python查看 Ubuntu 包装的分层。Umang 建议的工具
python-stdeb
和python-mkdebian
工具简化了 Ubuntu 打包所需的各种文件的生成。请务必检查:
http://pypi.python.org/pypi/modern-package-template/1.0 对于一个好的默认包布局,包括一个 starter setup.py 文件
http://pypi.python.org/pypi/virtualenv 用于将您的开发环境与系统的其余部分隔离开来。运行类似的东西
python setup.py 开发
将您的命令构建/设置到您的 virtualenv 中,以便您可以对其进行测试。