Невозможно импортировать подмодули Tornado
Попытка установить Tornado в первый раз (на примере EC2 Linux). Я сделал
pip install tornado
а затем попытался запустить пример приветствия: http://www.tornadoweb.org/en/stable/#hello-world
import tornado.ioloop
import tornado.web
class MainHandler(tornado.web.RequestHandler):
def get(self):
self.write("Hello, world")
application = tornado.web.Application([
(r"/", MainHandler),
])
if __name__ == "__main__":
application.listen(80)
tornado.ioloop.IOLoop.instance().start()
Затем я попробую:
python hello.py
но получим:
Traceback (последний последний вызов): Файл "testing/tornado.py", строка 1, в
import tornado.ioloop Файл "/opt/pdf_engine/testing/tornado.py", строка 1, на
import tornado.ioloop ImportError: Нет модуля с именем ioloop
Ответы
Ответ 1
Не указывайте свой файл tornado.py
; это тень реального импорта Торнадо. Назовите его чем-то вроде того, что вы использовали в вашем примере, например. hello.py
Теперь ваш import tornado.ioloop
пытается импортировать элемент ioloop
из вашего собственного файла, потому что он имеет имя tornado
и в текущем каталоге с наивысшим приоритетом импорта.
Ответ 2
Если вы назвали свой файл tornado.py и переименовали его в другое имя, не забудьте удалить tornado.pyc в вашем каталоге.