我正试图让Python在我的Ubuntu 11.04盒子上工作。
我做了sudo apt-get install python-twisted
但是,当我尝试以下代码时:
from twisted.internet import protocol, reactor
class Echo(protocol.Protocol):
def dataReceived(self, data):
self.transport.write(data)
class EchoFactory(protocol.Factory):
def buildProtocol(self, addr):
return Echo()
reactor.listenTCP(1234, EchoFactory())
reactor.run()
我收到了这个错误,我无法深究:
Traceback (most recent call last):
File "eamorr.py", line 1, in <module>
from twisted.internet import protocol, reactor
File "/home/eamorr/Desktop/twisted.py", line 1, in <module>
ImportError: No module named internet
非常感谢任何帮助。
答案 0 :(得分:20)
问题是文件的名称。 Python首先在当前目录中查找模块。当您尝试导入twisted.internet
时,它会在您的文件夹中找到该文件,该文件名为twisted.py
。但是找不到internet
子模块。如果你重命名你的文件,Python将加载正确的twisted
,一切都将是finde。
答案 1 :(得分:0)
可以将Python行为更改为绝对导入而不是相对导入。将以下内容添加到py文件的顶部。
from __future__ import absolute_import