我正在使用Mac OS X 10.9.1,我记得前一段时间安装了Python(我记不起为什么,考虑到Mac OS X附带它)。出于某种原因,没有安装Twisted,所以我安装了Zope和Twisted。
问题是,当我运行此代码时:
from twisted.internet.protocol import Factory,Protocol
from twisted.internet import reactor
class IphoneChat(Protocol):
def connectionMade(self):
print "a client connected"
factory = Factory()
factory.protocol = IphoneChat
reactor.listenTCP(80, factory)
print "Iphone Chat server started"
reactor().run
我收到此错误:
Traceback (most recent call last):
File "/Users/Mattieman/Desktop/server.py", line 4, in <module>
from twisted.internet import reactor
File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/twisted/internet/reactor.py", line 38, in <module>
from twisted.internet import default
File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/twisted/internet/default.py", line 56, in <module>
install = _getInstallFunction(platform)
File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/twisted/internet/default.py", line 52, in _getInstallFunction
from twisted.internet.selectreactor import install
File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/twisted/internet/selectreactor.py", line 18, in <module>
from twisted.internet import posixbase
File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/twisted/internet/posixbase.py", line 53, in <module>
from twisted.internet import process, _signals
ImportError: cannot import name process
所以我看了/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/twisted/internet
...似乎缺少process.py
。
我该怎么办?
似乎还缺少其他文件,例如_baseprocess.py
我使用了setup3.py
,如果它有帮助......
答案 0 :(得分:1)
您正在使用Python 2.6。你不应该使用setup3.py
。您也不应该使用distutils setup.py
- 类型脚本将Python库安装到OS路径中(例如/Library/Frameworks/Python.framework/Versions/2.6/
)。
您的系统上可能存在随机损坏的Twisted安装(OS X本身附带Twisted副本)。或者你可能只需要清理/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/twisted
中的一些垃圾。很难说哪个(这就是为什么你不应该使用setup.py
来安装东西 - 这会让事情变得一团糟。)
在您清理完这些烂摊子后(除了“重新安装您的OS X”之外,我无法向您提供有关如何执行此操作的许多提示,抱歉),您有以下几种选择:
setup.py install --user
(--user
告诉它将其内容留在~/.local
中,至少它不会破坏您的操作系统安装)。其中,您可能想要使用virtualenv。
另请注意,除非您尝试安装Twisted for Python 3,否则不应运行setup3.py
。如果您尝试这样做,那么我会警告您只有部分Twisted被移植 - 这只是一小部分。例如,它不是流程支持(因此您获得的导入错误)。