我使用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之一。
我确实认为这是两个版本共存相关,但我该如何解决这个问题呢?
答案 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