Mac安裝MySQL-pyhton報錯
今天在Mac上安裝MySQL-python報錯,搜遍網絡都說什么mysql config路徑問題,但是都不行。
解決方案
一開始遇到的問題是:
Complete output from command python setup.py egg_info:
sh: mysql_config: command not found
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/private/var/folders/jy/7ybw8dpj71n9yhk_xj5jttxc0000gn/T/pip-install-NknW3b/MySQL-python/setup.py", line 17, in <module>
metadata, options = get_config()
File "setup_posix.py", line 43, in get_config
libs = mysql_config("libs_r")
File "setup_posix.py", line 25, in mysql_config
raise EnvironmentError("%s not found" % (mysql_config.path,))
EnvironmentError: mysql_config not found
----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /private/var/folders/jy/7ybw8dpj71n9yhk_xj5jttxc0000gn/T/pip-install-NknW3b/MySQL-python/
找了一下發現是應為沒有安裝mysql-connector-c,安裝brew install mysql-connector-c,
再次安裝MySQL-python,發現還是報錯,但是報錯信息變了:
Complete output from command python setup.py egg_info:
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/private/var/folders/jy/7ybw8dpj71n9yhk_xj5jttxc0000gn/T/pip-install-u39xuY/MySQL-python/setup.py", line 17, in <module>
metadata, options = get_config()
File "setup_posix.py", line 53, in get_config
libraries = [ dequote(i[2:]) for i in libs if i.startswith(compiler_flag("l")) ]
File "setup_posix.py", line 8, in dequote
if s[0] in "\"'" and s[0] == s[-1]:
IndexError: string index out of range
----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /private/var/folders/jy/7ybw8dpj71n9yhk_xj5jttxc0000gn/T/pip-install-u39xuY/MySQL-python/
網上搜了一圈,但是解決方案都不對,最后發現是mysql-connector-c本身的配置問題,修改文件
/usr/local/Cellar/mysql-connector-c/6.1.11/bin/mysql_config:
cd /usr/local/Cellar/mysql-connector-c/6.1.11/bin/
# 修改之前先備份,防止改壞了
cp mysql_config mysql_config.bak
# 修改文件
sudo vim mysql_config
# 將對應的內容修改為
# Create options
libs="-L$pkglibdir"
# libs="$libs -l "
libs="$libs -lmysqlclient -lssl -lcrypto "
再次安裝pip install MySQL-python, 成功
