Python noob:“ImportError:没有名为internet的模块”

时间:2011-12-09 10:09:43

标签: python module twisted

我正试图让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

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:20)

问题是文件的名称。 Python首先在当前目录中查找模块。当您尝试导入twisted.internet时,它会在您的文件夹中找到该文件,该文件名为twisted.py。但是找不到internet子模块。如果你重命名你的文件,Python将加载正确的twisted,一切都将是finde。

答案 1 :(得分:0)

可以将Python行为更改为绝对导入而不是相对导入。将以下内容添加到py文件的顶部。

from __future__ import absolute_import