如何创建一个debian包来分发python模块而不使用distutils?

如何创建一个debian包来分发python模块而不使用distutils?,python,debian,package,debhelper,Python,Debian,Package,Debhelper,我完全搞不懂如何正确包装我的产品 我的应用程序使用Makefile将内容安装到正确的文件位置,例如 /usr/lib/rhythmbox/plugins/foo/myfoo.plugin /usr/lib/rhythmbox/plugins/foo/myfoo/po/translation.mo /usr/lib/rhythmbox/plugins/foo/myfoo_module.py /usr/lib/rhythmbox/plugins/foo/myfoo_module2.py 我没有使用

我完全搞不懂如何正确包装我的产品

我的应用程序使用Makefile将内容安装到正确的文件位置,例如

/usr/lib/rhythmbox/plugins/foo/myfoo.plugin
/usr/lib/rhythmbox/plugins/foo/myfoo/po/translation.mo
/usr/lib/rhythmbox/plugins/foo/myfoo_module.py
/usr/lib/rhythmbox/plugins/foo/myfoo_module2.py
我没有使用python distutils setup.py类型的安装-只是一个简单的基于
sudo make安装的方法

当我尝试使用Debian软件包时,我的规则非常简单:

#!/usr/bin/make -f %: dh $@ --parallel --with autoreconf,python3 override_dh_autoreconf: dh_autoreconf -- ./autogen.sh override_dh_auto_configure: dh_auto_configure -- --libdir="\$${exec_prefix}/lib" 。。。但是我没有使用distutils setup.py来安装我的应用程序


所以我肯定错过了一些非常明显的东西——有什么想法吗?

您不需要使用distutils或setup.py为Python程序创建有效的deb<如果使用distutils,code>dh_python3
只会让事情变得更简单。因为您不是,所以应该简单地像使用Python以外的东西一样继续


由于我不知道您的结构是什么,我无法描述确切的步骤,但一般来说,您应该使用
dh_install
将正确的文件安装到正确的位置,并创建适当的维护者脚本,以执行字节编译(安装或更新)和删除字节编译文件所需的任何工作(在删除或清除时)。dh_python3生成的维护者脚本可能提供了一个很好的起点(您可以在系统上与
/var/lib/dpkg/info/python3-*.postinst
.postrm
匹配的大多数文件中找到).

您不需要使用distutils或setup.py为Python程序创建有效的deb;
dh_python3
如果您使用distutils,只会让事情变得更简单。因为您不需要,所以您应该像使用Python以外的东西一样继续

由于我不知道您的结构是什么,我无法描述确切的步骤,但一般来说,您应该使用
dh_install
将正确的文件安装到正确的位置,并创建适当的维护者脚本,以执行字节编译(安装或更新)和删除字节编译文件所需的任何工作(在删除或清除时)。dh_python3生成的维护者脚本可能提供了一个很好的起点(您可以在系统上与
/var/lib/dpkg/info/python3-*.postinst
.postrm
匹配的大多数文件中找到)

Build-Depends: debhelper (>= 9), dh-autoreconf, dh-python (>= 1.20130903), gir1.2-glib-2.0, gir1.2-gstreamer-1.0, gir1.2-gtk-3.0, gir1.2-peas-1.0, gir1.2-rb-3.0, gobject-introspection (>= 0.10.0), intltool (>= 0.35.0), libglib2.0-dev, python3 override_dh_auto_install: dh_auto_install python setup.py install --root=$(CURDIR)/debian/$(DEB_SOURCE) --install-layout=deb)