我正在更新一个通过私有deb存储库部署的python软件包,以使用命名空间名称。 (我已经更改了细节以使其通用)
旧名称是:
我已经更改了命名方式:
我为myorg和myorg / myproject和 将程序包移到该层次结构中。 我的第一次尝试似乎奏效了,但是deb不再包含python文件。
我缺少的有关名称空间包的特别之处吗?
答案 0 :(得分:0)
在文件 debian / rules 中,确保将PYBUILD_NAME设置为deb名称减去python / python3
PYBUILD_NAME=myorg.myproject.useful.thing
首先,我将其设置为myorg.myproject.useful_thing。这个想法是关于结束的,但是下划线是个问题(debian软件包名称中的下划线是非法的)。建议使用点分的python软件包名称作为debian软件包名称来推荐Debian策略。 (与pip有点不同,pip会将点替换为破折号)
请参阅https://www.debian.org/doc/packaging-manuals/python-policy/module_packages.html#package_names
如果使用python2.7,则使用pkgutil样式命名空间,如果您将 __ init __。py 文件包含在多个命名空间包(与dh_python打包)中,则 __ init __。py 文件冲突,因此只有一个基本软件包包含命名空间目录很重要。
在子程序包中,确保不包括名称空间程序包。 例如:
packages=['myorg.myproject.other_thing'],
或
packages=find_packages(exclude=['myorg', 'myorg.myproject']),