2013-06-26 78 views
16

嘗試首次安裝Tornado(在EC2 Linux實例上)。我做無法導入Tornado子模塊

pip install tornado 

,然後試圖運行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() 

然後我嘗試:

python hello.py 

,但得到:

回答

42

不要命名您的文件tornado.py ;它會影響實際的Tornado導入。將其命名爲您在示例中使用的內容,例如hello.py

現在,您import tornado.ioloop正試圖從自己的文件導入成員ioloop,因爲它的命名tornado和具有最高導入優先級的當前目錄。

+3

謝謝琥珀,我很笨 – Yarin

+0

如何停止服務器。我也試過你好世界的例子。但我不知道如何阻止它 –

+0

嘗試'Ctrl + C'來停止它。 – Amber

0

如果您將文件命名爲tornado.py並將其重命名爲其他名稱,請不要忘記刪除目錄中的tornado.pyc。