Python noob: «ImportError: нет модуля с именем internet» - PullRequest
4 голосов
/ 09 декабря 2011

Я пытаюсь заставить 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 ]

20 голосов
/ 09 декабря 2011

Проблема в названии вашего файла.Python сначала ищет в вашем текущем каталоге модули.Когда вы пытаетесь импортировать twisted.internet, он находит файл в вашей папке, который называется twisted.py.Но подмодуль internet не может быть найден.Если вы переименуете свой файл, Python загрузит правильный twisted, и все будет найдено.

0 голосов
/ 17 ноября 2015

Можно изменить поведение Python для выполнения абсолютного импорта вместо относительного импорта.Добавьте следующее в начало файла py.

from __future__ import absolute_import

...