Python setuptools:\uuuu init\uuuu.py不调用declare\u namespace()

Python setuptools:\uuuu init\uuuu.py不调用declare\u namespace(),python,setuptools,zope,zodb,namespace-package,Python,Setuptools,Zope,Zodb,Namespace Package,我正在尝试安装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.) 手册中的相关章

我正在尝试安装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.)
手册中的相关章节如下:

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

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

# this is a namespace package
try:
    import pkg_resources
    pkg_resources.declare_namespace(__name__)
except ImportError:
    import pkgutil
    __path__ = pkgutil.extend_path(__path__, __name__)

错误消息告诉您使用
declare\u namespace()
函数,因此似乎可以使它以这种方式工作

但是您可能应该使用一个隐式名称空间包并完全删除
\uuuu init\uuuuu.py
。名称空间包通常没有名称空间包,因为它们可能与另一个具有相同树状结构的名称空间包中的
\uuuu init\uuuuuuuuuuy.py
冲突

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

zope2/__ init__.py
zope2/a/__init__.py
zope2/__ init__.py
zope2/b/__init__.py
以及
zope2.b
名称空间:

zope2/__ init__.py
zope2/a/__init__.py
zope2/__ init__.py
zope2/b/__init__.py
安装两个后的结果将是:

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

zope2/__;init__;py.py您是否尝试过使用pip进行安装?你在使用python2.6吗?是的,我试过pip,但它说需求已经是最新的(没有实际安装包)。我使用的是Python2.7。该软件包适用于Python2.6。您使用的是什么操作系统?是否有可能在Python2.7下运行它?我的操作系统是Ubuntu 12.04.4 LTS。这里有一个更新的软件包。您似乎已经安装了pip,请确保您使用的是python2.7的正确pip