'pip install MySQL-python' 失败,出现 'IndexError'。

17

我正在使用OSX El Capitan,使用Python 2.7(Anaconda)。运行命令pip install MySQL-python会出现以下情况:

Collecting MySQL-python
  Using cached MySQL-python-1.2.5.zip
    Complete output from command python setup.py egg_info:
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/private/var/folders/d2/gd004m2s35z5dlyz9mfn6sc40000gn/T/pip-build-FYvb_T/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

这些都没有起作用(退出时出现相同的错误)。

  • pip install mysqlclient
  • easy_install MySQL-python

pip 已经是最新版本。我已经尝试了所有相关问题中的建议,但都没有成功。非常感谢您的帮助!

4个回答

36
这篇博客中得知,通过查找mysql-connector-c的信息,可以得出使用brew安装时的配置可能不正确的结论,需要打开/usr/local/bin/mysql_config脚本并修改其中一些内容。
#Create options
Libs = "-L$pkglibdir "
Libs = "$libs -l"

转换为:

#Create options
Libs = "-L$pkglibdir"
Libs = "$libs -lmysqlclient -lssl -lcrypto"

保存
然后重新安装mysql-python:

pip install mysql-python

在安装 mysql-python 之前,您可能还需要运行以下命令:export LDFLAGS="-L/usr/local/opt/openssl/lib"export CPPFLAGS="-I/usr/local/opt/openssl/include"。请参阅 brew info openssl 的输出。 - Railslide

7

我遇到了同样的错误,并按照以下说明解决了问题:

  1. 卸载mysql-connector-c:brew uninstall mysql-connector-c
  2. 安装mysql:brew install mysql
  3. 运行“mysql_config --libs”并确认其输出包括正确的库选项:“-L/usr/local/Cellar/mysql/5.7.20/lib -lmysqlclient -lssl -lcrypto”
  4. 导出LDFLAGS=-L/usr/local/opt/openssl/lib && pip install mysqlclient

5
这解决了我的问题:
     brew install mysql@5.7
     brew link --force mysql@5.7

2
是的,在安装了这个版本之后,我们还需要执行命令 LDFLAGS=-L/usr/local/opt/openssl/lib pip install mysql-python。我在 macOS 10.13.6 上成功安装了它。 - anhtran

1

在安装pip install MySql-python时,我遇到了相同的错误。

然后,我使用以下命令安装了libmysqlclient-dev

sudo apt install libmysqlclient-dev

安装完成后,我再次尝试pip install MySql-python,这次成功了。


你知道在哪里可以找到OSX对应的库吗?不幸的是,"brew install mysql"没有改变任何东西。 - mommi84

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接