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

Net*_*tro 5 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
Run Code Online (Sandbox Code Playgroud)

该模块的版本为4.0.5

>>> import pkg_resources
>>> pkg_resources.get_distribution("zope.interface").version
'4.0.5'
Run Code Online (Sandbox Code Playgroud)

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

>>> import pkg_resources
>>> pkg_resources.get_distribution("zope.interface").version
'4.0.1'
>>> from zope.interface.registry import Components
Run Code Online (Sandbox Code Playgroud)

这里from zope.interface.registry import Components没有给出任何错误。根据这个

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.
Run Code Online (Sandbox Code Playgroud)

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

msa*_*gel 4

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

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

     from zope.interface.registry import Components
ImportError: No module named registry
Run Code Online (Sandbox Code Playgroud)

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

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

(env)user@ubuntu:~/env$ sudo pip install --upgrade zope.interface
Run Code Online (Sandbox Code Playgroud)

之后我的问题就被zope.interface解雇了。

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