python 的 debhelper 不部署命名空间包

debhelper with python doesn't deploy namespaced packages

我正在更新一个 python 包,该包通过私有 deb 存储库部署以使用命名空间名称。 (我更改了细节以使其通用)

旧名字是:

我已经更改了命名:

我为 myorg 和 myorg/myproject 制作了 pkgutil 风格的命名空间包 将包移动到该层次结构中。 我的第一次尝试似乎奏效了,但 deb 不再包含 python 个文件。

命名空间包有什么我遗漏的特别之处吗?

在文件 debian/rules 中确保将 PYBUILD_NAME 设置为 deb 名称减去 python/python3

PYBUILD_NAME=myorg.myproject.useful.thing

首先我将其设置为 myorg.myproject.useful_thing。这个想法很接近,但是下划线是个问题(debian 包名称中的下划线是非法的)。 Debian 政策建议也使用带点的 python 软件包名称作为 debian 软件包名称。 (与 pip 略有不同,pip 会将点换成破折号)

https://www.debian.org/doc/packaging-manuals/python-policy/#module-package-names

此外,对于 python2.7,使用 pkgutil 样式命名空间,如果您在 more 中包含 init.py 文件比一个命名空间包(用 dh_python 打包) init.py 文件冲突,所以只有一个基础包包含命名空间目录。

在子包中,确保不包含命名空间包。 例如:

packages=['myorg.myproject.other_thing'],

packages=find_packages(exclude=['myorg', 'myorg.myproject']),