【问题标题】:'pip install MySQL-python' fails with 'IndexError'“pip install MySQL-python”因“IndexError”而失败
【发布时间】:2017-09-18 12:02:51
【问题描述】:

我在 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 是最新的。我基本上尝试遵循相关问题中的所有建议,但没有成功。任何帮助表示赞赏,谢谢!

【问题讨论】:

    标签: python mysql pip mysql-python osx-elcapitan


    【解决方案1】:

    this blog.复制

    通过查找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的输出
    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

      这解决了我的问题:

           brew install mysql@5.7
           brew link --force mysql@5.7
      

      【讨论】:

      • 是的,安装此版本后。我们还必须遵循命令LDFLAGS=-L/usr/local/opt/openssl/lib pip install mysql-python。我在 macOS 10.13.6 中安装成功。
      【解决方案4】:

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

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

      sudo apt install libmysqlclient-dev

      安装后我又试了pip install MySql-python 它对我有用。

      【讨论】:

      • 你知道我在哪里可以找到 OSX 的对应库吗?不幸的是,brew install mysql 没有改变任何东西。
      猜你喜欢
      • 2014-02-23
      • 2019-03-31
      • 1970-01-01
      • 2020-06-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-24
      相关资源
      最近更新 更多