在python中的zope.interface.registry中导入错误

时间:2013-03-25 08:23:32

标签: python importerror zope.interface

我正在虚拟环境中安装项目。我收到错误

from zope.interface.registry import Components
Traceback (most recent call last):
  File "<console>", line 1, in <module>
ImportError: No module named registry

此模块的版本为4.0.5

>>> import pkg_resources
>>> pkg_resources.get_distribution("zope.interface").version
'4.0.5'

我在我的机器上尝试了相同的操作(不是虚拟环境),

>>> import pkg_resources
>>> pkg_resources.get_distribution("zope.interface").version
'4.0.1'
>>> from zope.interface.registry import Components

此处from zope.interface.registry import Components未发现任何错误。根据{{​​3}}

QUOTE: 3.8.0 (2011-09-22) 
New module zope.interface.registry. This is code moved from 
zope.component.registry which implements a basic nonperistent component registry 
as zope.interface.registry.Components.

,它不应该给出任何错误。有什么建议我在这里缺少或如何解决这个错误?

1 个答案:

答案 0 :(得分:4)

我有类似的错误 - 我尝试创建没有站点包的新虚拟环境。它创造了一切美好。但是我的ubuntu已经安装了zope.interface供自己使用,所以它不想在我的venv之外安装它。

这次碰撞导致我的venv在mod_wsgi下的简单测试应用程序中抛出错误:

     from zope.interface.registry import Components
ImportError: No module named registry

所以我试图从基础python中删除zope.interface。但unistall命令没有删除它(我在谷歌发现,它已知问题)。

比我找到了解决方案:我刚刚切换到我的venv并命​​令从那里“升级”zope.interface

(env)user@ubuntu:~/env$ sudo pip install --upgrade zope.interface

在此之后zope.interface解决了我的问题。

你的问题很相似,所以我的解决方案可以提供帮助。无论如何,这个答案对于ubuntu桌面用户非常有用。