在 Mac 中安裝 MySQLdb (Python mysql )

安裝環(huán)境:OS X操作系統(tǒng),Python 2.7.3。

MySQLdb其實包含在MySQL-python包中,因此無論下載還是在pip中search,都應(yīng)該是搜尋MySQL-python。

以下將說明MySQLdb兩種常見的安裝方式,下載安裝或者pip安裝MySQL-python。

下載MySQLdb

在SourceForge可以下載MySQL-python-1.2.4b4.tar,下載后解壓,然后在終端Terminal中執(zhí)行以下命令:

new-host-3:~ iFantastic$ cd /Users/iFantastic/Downloads/MySQL-python-1.2.4b4

new-host-3:MySQL-python-1.2.4b4 iFantastic$ python setup.py install
 使用pip安裝MySQLdb

在終端中執(zhí)行:

new-host-3:~ iFantastic$ pip install MySQL-python
  無論是在線安裝還是下載安裝,此時你可能會遇到第一個錯誤提示:

EnvironmentError: mysql_config not found
  建議使用pip安裝,因為我從sourceforge下載的版本居然不如pip中的新。如果想要升級mysql-python版本,可以使用以下命令:

$ easy_install MySQL-python --upgrade
 ?。圩⒁猓萑绻銢]有按照下文解決安裝中的錯誤提示,那么升級也會因為同樣的錯誤原因而失敗。

解決mysql_config not found錯誤

在默認方式安裝Mac版MySql時,會在/usr/local/mysql/bin目錄下生成mysql_config文件。

因此下載安裝時的解決辦法為:在MySQL-python的安裝包中找到site.cfg文件,打開它,找到以下內(nèi)容:

The path to mysql_config.
Only use this if mysql_config is not on your PATH, or you have some weird
setup that requires it.
mysql_config = /usr/local/bin/mysql_config
  將最后一句句首井號去掉,并修改為:

mysql_config = /usr/local/mysql/bin/mysql_config
  然后執(zhí)行:

$ python setup.py install
  一般說來,此時安裝可以完成,但仍有問題,下文會繼續(xù)闡述。

使用pip安裝時沒有辦法修改site.cfg文件,因此可以通過修改OS X的系統(tǒng)環(huán)境變量來解決找不到mysql_config的錯誤。

修改OS X環(huán)境變量:打開終端,在終端中使用vim打開“~/.bash_profile”,如果沒有安裝vim,那就顯示隱藏文件用文本編輯器打開,具體操作這里就不復(fù)述了。在.bash_profile中添加以下內(nèi)容:

PATH="/usr/local/mysql/bin:${PATH}"
export PATH
export DYLD_LIBRARY_PATH=/usr/local/mysql/lib/
export VERSIONER_PYTHON_PREFER_64_BIT=no
export VERSIONER_PYTHON_PREFER_32_BIT=yes
  其中 VERSIONER_PYTHON_PREFER_64_BIT和VERSIONER_PYTHON_PREFER_64_BIT根據(jù)自己安裝的MySQL進行選擇。

解決mac _mysql.c:44:10: fatal error: ‘my_config.h‘ file not found

環(huán)境:
mac os:10.15.4
mysql:8.0.19 通過Homebrew命令安裝
MySQL-python: 1.2.5

pip install MySQL-python
......
running build_ext
building 'mysql' extension
creating build/temp.macosx-10.15-x86_64-2.7
cc -fno-strict-aliasing -fno-common -dynamic -g -Os -pipe -fno-common -fno-strict-aliasing -fwrapv -DENABLE_DTRACE -DMACOSX -DNDEBUG -Wall -Wstrict-prototypes -Wshorten-64-to-32 -iwithsysroot /usr/local/libressl/include -DNDEBUG -g -fwrapv -Os -Wall -Wstrict-prototypes -DENABLE_DTRACE -I/usr/local/opt/openssl@1.1/include -arch x86_64 -pipe -Dversion_info=(1,2,5,'final',1) -D__version
_=1.2.5 -I/usr/local/Cellar/mysql/8.0.19_1/include/mysql -I/Users/zhangli53/.virtualenvs/mega/include/python2.7 -c _mysql.c -o build/temp.macosx-10.15-x86_64-2.7/_mysql.o
_mysql.c:44:10: fatal error: 'my_config.h' file not found

include "my_config.h"

       ^~~~~~~~~~~~~

1 error generated.
error: command 'cc' failed with exit status 1


ERROR: Failed building wheel for MySQL-python


image.png

要安裝MySQL-python 包,報錯如上,找不到my_config.h文件,那么我就在本電腦上找一下這個文件吧

find / -name "my_config.h"
1
結(jié)果是沒有這個文件,那么問題就很明顯了,去哪找這個頭文件?
我在本地電腦查mysql的安裝目錄,最后發(fā)現(xiàn)目錄 /usr/local/include/mysql 下有個 mysql.h 文件,這個就應(yīng)該是我們要找的my_config.h 文件了吧,cp mysql.h my_config.h ,再次 pip install MySQL-python 就已經(jīng)安裝成功了!??!

我還在想如果這個文件不對,去別個環(huán)境拷一個my_config.h 文件過來,安裝一下試試呢,結(jié)果就成功了。

我覺得 這個鍋應(yīng)該是新版的mysql來背,文件名瞎改啥? MySQL-python 包也應(yīng)該更新一下,做個兼容。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容