ImportError:Twisted需要zope.interface 3.6.0或更高版本:实际上它已经安装

时间:2015-09-05 20:08:07

标签: python twisted kivy zope

我使用OSX 10.9 + Kivy 1.9.1,但我有两个版本的Python,Mac OSX自包含2.7.5和另一个独立的2.7.9安装。以下是详细信息:

MacBook-Air:wzy$ python
  

Python 2.7.5(默认,2014年3月9日,22:15:05)   [dclwin上的[GCC 4.2.1兼容的Apple LLVM 5.0(clang-500.0.68)]   输入" help"," copyright"," credit"或"许可证"了解更多信息。

MacBook-Air:wzy$ python
  

Python 2.7.9(v2.7.9:648dcafa7e5f,2014年12月10日,10:10:46)   [达尔文的GCC 4.2.1(Apple Inc. build 5666)(第3点)]   输入" help"," copyright"," credit"或"许可证"了解更多信息。

在安装了pip install twisted时,我在kivy中使用python 2.7.5得到以下错误消息,这在python 2.7.9中不会发生

MacBook-Air:wzy$ kivy
>>> import twisted
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/twisted/__init__.py", line 53, in <module>
    _checkRequirements()
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/twisted/__init__.py", line 37, in _checkRequirements
    raise ImportError(required + ": no module named zope.interface.")
ImportError: Twisted requires zope.interface 3.6.0 or later: no module named zope.interface.
MacBook-Air:wzy$ python
>>> import twisted
>>> exit()

我甚至多次安装zope.interface并将安装目标目录专用于kivy环境的sys.path之一。

我确实认为这是两个版本共存相关,但我该如何解决这个问题呢?

3 个答案:

答案 0 :(得分:2)

执行pip install twisted时,您正在将Twisted 安装到某些Python环境中,具体取决于您使用python调用的pip可执行文件。如果您有2.7.5环境和2.7.9环境,pip install可能会将Twisted放在不同的位置,具体取决于您传递给pip的其他选项。 (您可能已将某些其他选项传递给pip install,因为没有权限,默认情况下,pip install会失败。您是否做过sudo pip install?您做过{ {1}}作为自制Python的管理员用户?)

执行此操作的正确方法是仅将Twisted安装到虚拟环境中。您可以使用pip install -p选项创建一个虚拟环境,该选项告诉它使用哪个Python用于该环境。然后,在正确的虚拟环境处于活动状态时,您可以virtualenv并且一切都应该按预期工作。

答案 1 :(得分:0)

感谢雕文,

最后我发现以下简单的命令可以直接解决这个问题,因为Kivy使用他自己的virtualenv环境,但我非常感谢你的帮助。

kivy -m pip install twisted

祝你好,

答案 2 :(得分:-1)

我遇到了同样的导入错误问题,提供了另一种可能的解决方案:

我安装了zope.interface 4.4.2,原来我的扭曲版本太旧了。通过升级扭曲解决了我的问题。 pip install --upgrade twisted