4月 27

tornado 从2.4升级3.0.1遇到的问题

  ”琼台博客”评论tornado3.0.1版本居然没有database。我一直在使用tornado2.4 也打算升级最新版本3.0.1学习一下。
  我先在阿里的云主机上试试。遇到了两个问题。
首先使用easy_install安装到最新版。
#easy_install -U tornado
原有数据库部分代码

from tornado import database

# format  ip, database name, user name, password
db = database.Connection("x.x.x.x","simonzhang","test", "123", 24*3600)

报错
Traceback (most recent call last):
File ““, line 1, in
ImportError: No module named database

  按照”琼台博客”所写安装torndb(直接使用mysqldb-python也可以,但是会有点麻烦)
# easy_install -U torndb
修改代码如下:

import torndb

#torndb.Connection(host, database, user=None, password=None, max_idle_time=25200, connect_timeout=0, time_zone='+0:00'
db = torndb.Connection("x.x.x.x","simonzhang","test", "123", 24*3600)

修改完毕报启动服务器
python main.py 8888
报错如下
socket.error: [Errno 97] Address family not supported by protocol

mail.py的部分代码

if __name__ == "__main__":
    listen_ip =  sys.argv[1]
    application.listen(listen_port)
    tornado.ioloop.IOLoop.instance().start()

应该是因为阿里云主机是两块网卡,eth0是内网,eth1是外网。所以直接也把IP指定

if __name__ == "__main__":
    listen_ip =  sys.argv[1]
    listen_port =  sys.argv[2]
    application.listen(listen_port, listen_ip)
    tornado.ioloop.IOLoop.instance().start()

启动服务
python mail.py x.x.x.x 8888

服务正常启动。