Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Cannot import Tornado submodules

Tags:

python

tornado

Trying to install Tornado for first time (On EC2 Linux instance). I did

pip install tornado

and then tried running the hello world example: 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()

I then try:

python hello.py

but get:

Traceback (most recent call last): File "testing/tornado.py", line 1, in
import tornado.ioloop File "/opt/pdf_engine/testing/tornado.py", line 1, in
import tornado.ioloop ImportError: No module named ioloop

like image 486
Yarin Avatar asked Jun 26 '13 14:06

Yarin


2 Answers

Don't name your file tornado.py; it shadows the actual Tornado import. Name it something like what you used in your example, e.g. hello.py

Right now, your import tornado.ioloop is trying to import the member ioloop from your own file, because it's named tornado and in the current directory which has the highest import precedence.

like image 118
Amber Avatar answered Nov 10 '22 14:11

Amber


If you named your file tornado.py and rename it to another name,don't forget to remove tornado.pyc in your directory.

like image 21
Venusor Avatar answered Nov 10 '22 15:11

Venusor