2014-09-19 102 views
1

我使用Lubuntu,其默認有兩個python2.7和python3.4MySQLdb的與python3.4

我安裝MySQLdb的Python的3.4,我試圖使用PIP 3

使用它在python3.4

但單純導入MySQLdb的結果此錯誤

Traceback (most recent call last): 
    File "/home/tahseen/workspace/stockproject/test.py", line 18, in <module> 
    import MySQLdb as mysql 
    File "/usr/local/lib/python3.4/dist-packages/MySQLdb/__init__.py", line 19, in <module> 
    import _mysql 

ImportError: /usr/local/lib/python3.4/dist-packages/_mysql.so: undefined symbol: _Py_ZeroStruct` 

令人驚訝,當我使用python2.7,這個錯誤不上來

回答

3

引用另一篇文章:

「MySQLdb不支持Python 3,但它不是Python的唯一MySQL驅動程序 。

你可以嘗試使用PyMySQL。它是一個純粹的python MySQL驅動程序,其中 意味着它比較慢,但它不需要編譯的C組件或 MySQL庫和頭文件安裝在客戶機上。 pypi 0.6.2的最新版本支持Python 3.4。

另一種選擇就是用其他數據庫系統,如PostgreSQL的 「

鏈接:。Python 3.4.0 with MySQL database

ps的,如果你在赤https://pypi.python.org/pypi/MySQL-python/1.2.3你就可以讀了Python 3.0會在未來的版本中支持

+1

'MySQL-python'一直聲稱它將在未來的發行版中支持Py3多年,如果你想要一個API等效替代Py3,[請看'mysqlclient']( https://pypi.python.org/p ypi/mysqlclient),它分叉了'MySQL-python',增加了對Py3.3 +的支持(同時還支持2.7,所以你可以在Py2和Py3上使用它作爲'MySQL-python'的替代品)。不像'PyMySQL'(和'MySQL-python')一樣,它是一個Python擴展模塊,所以性能是等價的(讀取速度更快,並且由於它可以釋放GIL,因此線程可能更快)。 – ShadowRanger 2016-11-10 17:07:57