Python setuptools:\uu init_u9.py不调用declare\u namespace()

2024-09-30 01:36:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试安装zope2.zodbrowser 0.2包(https://pypi.python.org/pypi/zope2.zodbbrowser/0.2)。安装脚本失败,错误如下:

Namespace package problem: zope2 is a namespace package, but its
__init__.py does not call declare_namespace()! Please fix it.
(See the setuptools manual under "Namespace Packages" for details.)

手册中的相关章节如下:https://pythonhosted.org/setuptools/setuptools.html#namespace-packages

但是,我不熟悉setuptools的内部结构,无法借助手册解决问题。如何解决此命名空间问题以成功安装包?在

供您参考~/zodbbrowser/src/zope2.zodbbrowser/zope2/\uuinit_u.py的源代码为:

^{pr2}$

Tags: pyhttpsorg脚本pypipackage错误手册
1条回答
网友
1楼 · 发布于 2024-09-30 01:36:48

错误消息告诉您使用declare_namespace()函数,因此它似乎可以这样工作。在

但您可能应该使用隐式命名空间包并完全删除__init__.py。命名空间包通常没有一个,因为它们可能与另一个具有相同树形的命名空间包中的__init__.py冲突。在

例如,如果您有zope2.a名称空间:

zope2/__ init__.py
zope2/a/__init__.py

以及zope2.b命名空间:

^{pr2}$

安装两个后的结果是:

zope2/__ init__.py <= Setuptools cannot know which file to take
zope2/a/__init__.py
zope2/b/__init__.py

请参阅Python文档:

All that is required to create a native namespace package is that you just omit init.py from the namespace package directory.

https://packaging.python.org/guides/packaging-namespace-packages/

相关问题 更多 >

    热门问题