2011-11-01 53 views
2

最近,我切换到Python 3(3.1在FreeBSD系统上),我想使用MySQL数据库。Python3 MySQL驱动程序

  • 首先我试图用pymysql3-0.4,但是当我用SUM我的查询与此错误失败: ,类型错误(“不能转换b'46691486' 为十进制”,))
  • 然后我试图oursql-0.9.2,但它似乎没有unix套接字支持(文档写入,否则它不能识别套接字协议。)
  • 最后我决定给mypysql-0.5.5一个机会,但安装失败。

您能否推荐一款适用于Python 3的MySQL驱动程序,或至少解决其中一个问题?我会非常棒。

+0

这将有助于查看生成TypeError的代码。除了司机之外,还有其他原因。 – ThatAintWorking

+0

'conn = pymysql.connect(host ='127.0.0.1',user ='test',passw ='psw1',db ='test',unix_socket ='/ tmp/mysql.sock') cur = conn。 cursor() trace =“SELECT SUM(data)FROM table WHERE date> =%d GROUP BY name”%time cur.execute(query)' – Noirello

+0

Traceback(最近调用最后一次): 文件“processo.py” ,第45行
cur.execute(“SELECT SUM(data)FROM'table' WHERE date> =%d GROUP BY name”%time) File“/usr/local/lib/python3.1/site-packages/ pymysql/cursors.py“,第108行,执行 self.errorhandler(self,exc,value) 文件”/usr/local/lib/python3.1/site-packages/pymysql/connections.py“,第182行,在defaulterrorhandler 举起错误(errorclass,错误值) pymysql.err.Error:(,TypeError(“Can not convert b'146120235'to Decimal”,)) – Noirello

回答

1

the oursql documentation有点棘手。 :$有一个Connection的参数列表,但它不包含unix_socket参数。如果我设置了那个和协议参数,整个事情就好了:)

如果有人在插入(get _statment charset AttributeError)时遇到问题:https://bugs.launchpad.net/oursql/+bug/669184用oursql.c中的代码改变报表中的代码,并重建它。 (它将固定在0.9.3)