2011-11-01 51 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)