无法导入Tornado子模块

Yar*_*rin 17 python tornado

尝试首次安装Tornado(在EC2 Linux实例上).我做到了

pip install tornado
Run Code Online (Sandbox Code Playgroud)

然后尝试运行hello world示例: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()
Run Code Online (Sandbox Code Playgroud)

然后我尝试:

python hello.py
Run Code Online (Sandbox Code Playgroud)

但得到:

回溯(最近一次调用最后一次):文件"testing/tornado.py",第1行,
导入tornado.ioloop文件"/opt/pdf_engine/testing/tornado.py",第1行,
导入tornado.ioloop ImportError:否名为ioloop的模块

Amb*_*ber 45

不要命名你的文件tornado.py; 它会影响实际的Tornado导入.将其命名为您在示例中使用的内容,例如hello.py

现在,您import tornado.ioloop正在尝试ioloop从您自己的文件中导入该成员,因为它已命名tornado并且在当前目录中具有最高的导入优先级.

  • 而且你很可能必须删除生成的tornado.pyc (9认同)
  • 谢谢Amber,我很蠢 (3认同)