安装tornado后依然提示No module named tornadoredis

sinat_33642485 2016-01-05 11:20:22
我从git上克隆的一个web服务https://github.com/suliangxd/ChatRoom
运行时提示
Traceback (most recent call last):
File "/Users/master/Downloads/ChatRoom/src/chatroom.py", line 10, in <module>
import tornadoredis
ImportError: No module named tornadoredis
tornado和redis都安装了,放狗搜了下也没找到原因
具体代码为
#coding:utf-8

import tornado.web
import tornado.ioloop
import tornado.httpserver
import tornado.options
import json
import tornado.web
import tornado.gen
import tornadoredis
from tornado.escape import json_encode

import os.path
import sqlite3
import datetime
import time
import common

from tornado.options import define, options

conn = sqlite3.connect('chatroom.db')
cur = conn.cursor()

c = tornadoredis.Client()
c.connect()

#显示所有聊天室的类
class ChatRoomHandler(tornado.web.RequestHandler):

def get_current_user(self):
return self.get_secure_cookie("username")

def get(self):
cookie_user = self.get_secure_cookie("username")
roomlist = common.getRoomList()
if cookie_user:
usertype = common.get_usertype(cookie_user)
self.render('chatroom.html', cookieUser=cookie_user, usertype = usertype,Error=False,
roomlist=roomlist)
else:
self.render('login.html', cookieUser=None, Error = False)

def post(self):
return

#创建聊天室
class CreateRoomHandler(tornado.web.RequestHandler):

#检查roomname是否被使用,未被使用返回False
def check_is_userd(self,roomname):
sql = "select roomname from room where roomname = '%s' " %(roomname)
cur.execute(sql)
if cur.fetchall():
return True;
return False;

def get(self):
cookie_user = self.get_secure_cookie("username")
if cookie_user:
usertype = common.get_usertype(cookie_user)
self.render('createroom.html', cookieUser=cookie_user, usertype = usertype,Error=False)
else:
self.render('login.html', cookieUser=None, Error = False)
#创建聊天室
def post(self):
roomname = self.get_argument('roomname')
username = self.get_secure_cookie('username')

#roomname被使用过
if self.check_is_userd(roomname):
usertype = common.get_usertype(username)
self.render('createroom.html', cookieUser=username, usertype = usertype, Error=True)
return

sql = "select userid from user where username = '%s' " % (username)
cursor = conn.execute(sql)
for row in cursor:
userid = row[0]
#创建
sql = "insert into room (roomname, created_time, owner_id) \
values('%s', datetime('now'), %d)" %(roomname, userid)
conn.execute(sql)
conn.commit()
self.redirect("/chatroom")
#聊天
class ChatHandler(tornado.web.RequestHandler):

def get(self):
uri_list = self.request.uri.split('/')
roomid = int(uri_list[-1])

self.set_secure_cookie("roomid", str(roomid),1)
cookie_user = self.get_secure_cookie("username")
if cookie_user:
usertype = common.get_usertype(cookie_user)
roominfo = common.getRoomInfo(roomid)
if roominfo is None:
#跳转404
self.render("404err.html")
#成功合法跳转某聊天房
else:
sql = "select username,msg,created_time from message where roomid = %d order by msgid \
desc limit 100" % (roomid)
cursor = conn.execute(sql)
#最近50条聊天记录
msginfoList = list(cursor.fetchall())
msginfoList.reverse()

self.render('chat.html', cookieUser=cookie_user, usertype = usertype,
roominfo=roominfo, msginfo=msginfoList)
else:
self.render('login.html', cookieUser=None, Error = False)

@tornado.web.asynchronous
def post(self):
username = self.get_secure_cookie("username")
msg = self.get_argument("msg")
#print '[get msg ok!] msg: ',msg
data = json_encode({'name':username, 'msg':msg})
roomchannel = str(self.get_secure_cookie('roomid'))
#持久化
sql = "insert into message(roomid,username,msg,created_time)\
values(%d,'%s','%s',datetime('now'))" % (int(roomchannel),username,msg)
conn.execute(sql)
conn.commit()

#收到将消息publish到Redis
#print data
c.publish(roomchannel, data)

self.write(json_encode({'result':True}))
self.finish()
...全文
1102 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
sinat_33642485 2016-01-05
  • 打赏
  • 举报
回复
找到原因了,还需要安装一个tornado-redis才行

37,719

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧