我正在更新一个python包,它是通过一个私有deb部署来使用命名空间名称的。(我已经更改了细节,使其成为通用的)
这些旧名字是:
因此,我更改了命名:
我为myorg和myorg/myproject制作了pkgutil样式命名空间包,并将包移到了继承结构中。我的第一次尝试似乎成功了,但是deb不再包含python文件。
命名空间包有什么特别之处吗?
发布于 2018-06-27 21:20:04
在文件debian/中,确保将PYBUILD_NAME设置为deb名称减去python/python 3
PYBUILD_NAME=myorg.myproject.useful.thing在第一个例子中,我将其设置为myorg.myproject.useful_thing。这个想法是接近的,但下划线是一个问题( debian包名中的下划线是非法的)。Debian策略也使用点python包名作为debian包名。(与pip略有不同,它会将点换成破折号)
请参阅https://www.debian.org/doc/packaging-manuals/python-policy/#module-package-names
此外,对于python2.7,使用pkgutil样式命名空间时,如果在多个名称空间包(与dh_python一起打包)中包含init.py文件,则init.py文件冲突,因此重要的是只有一个基本包包含名称空间目录。
在子包中,确保不包含命名空间包。例如:
packages=['myorg.myproject.other_thing'],或
packages=find_packages(exclude=['myorg', 'myorg.myproject']),https://stackoverflow.com/questions/51068015
复制相似问题