【问题标题】:Mac pip install mysql-python unsuccessfulMac pip安装mysql-python不成功
【发布时间】:2018-11-24 15:24:02
【问题描述】:

我从网站安装了 MySQL 和 Workbench。我有一个 django 项目,它的 requirements.txt:

Django==1.11.12
djangorestframework==3.8.2
django-cors-headers==2.2.0
drfdocs==0.0.11
mysql-python==1.2.5
django-rest-auth==0.9.3
django-allauth==0.35.0
nltk==3.2.5
django-extensions==2.0.7
pyparsing==2.2.0
pydot==1.2.4

当我跑步时

pip install -r requirements.txt

我收到一个错误mysql_config not found。为了解决这个问题,我跑了

PATH=$PATH:/usr/local/mysql/bin

现在抛出

    _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

    ----------------------------------------
Command ""/Users/nitish/gitProjects/Vision Backlog/vb_env/bin/python" -u -c "import setuptools, tokenize;__file__='/private/var/folders/ql/_w2_rlvs2351pdcnzhn04sf40000gn/T/pip-install-M4ue9E/mysql-python/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /private/var/folders/ql/_w2_rlvs2351pdcnzhn04sf40000gn/T/pip-record-7OCzf1/install-record.txt --single-version-externally-managed --compile --install-headers "/Users/nitish/gitProjects/Vision Backlog/vb_env/include/site/python2.7/mysql-python"" failed with error code 1 in /private/var/folders/ql/_w2_rlvs2351pdcnzhn04sf40000gn/T/pip-install-M4ue9E/mysql-python/

为什么会这样?

更新:以下解决方案抛出:

Collecting MySQL-python
  Using cached https://files.pythonhosted.org/packages/a5/e9/51b544da85a36a68debe7a7091f068d802fc515a3a202652828c73453cad/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/ql/_w2_rlvs2351pdcnzhn04sf40000gn/T/pip-install-X6b4rU/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

【问题讨论】:

    标签: python django django-rest-framework pip


    【解决方案1】:

    安装旧版本的 MySQL 对我有用:

    brew remove mysql
    brew install mysql@5.7
    brew link --force mysql@5.7
    pip install mysql-python
    

    见:

    【讨论】:

    • 谢谢!花了几分钟努力解决这个问题,直到我找到你的答案:)
    • 就是这样!正是 MySQL 5.7 版成功了。 (我必须安装较旧的 MySQL-python 版本 1.2.5)
    • 我使用了来自 mariadb 的 my_config.h 并将其放在 /usr/include 中。然后 pip2 install mysql-python 完美运行。
    【解决方案2】:

    请尝试:

    CFLAGS=-Qunused-arguments CPPFLAGS=-Qunused-arguments pip install -r requirements.txt
    

    如果它不起作用: 首先安装mysql-connector-c

    brew install mysql-connector-c 
    pip install MySQL-python
    

    如果您使用的是 Windows:

    https://dev.mysql.com/downloads/connector/c/

    您还可以使用pip3. 来检查安装时发生的情况

    更新: 如果你有 Linux: 请打开/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 uninstall mysql-python
    pip install mysql-python
    

    对于 Mac:

    LDFLAGS=-L/usr/local/opt/openssl/lib pip install mysql-python
    

    应该会有所帮助。

    【讨论】:

    【解决方案3】:
    brew install mysql@5.7
    export PATH="/usr/local/Cellar/mysql@5.7/5.7.29/bin:$PATH"
    export LDFLAGS="-L/usr/local/Cellar/mysql@5.7/5.7.29/lib -L/usr/local/Cellar/openssl@1.1/1.1.1d/lib"
    export CPPFLAGS="-I/usr/local/Cellar/mysql@5.7/5.7.29/include -I/usr/local/Cellar/openssl@1.1/1.1.1d/include"
    /Users/tivanli/source/bk_project/pizza/venv/bin/pip install MySQL-python==1.2.5
    

    【讨论】:

    • 在 Catalina 10.15.7 上工作得很好,因为我不得不站起来做一个旧的 python 项目。只需更新路径以反映当前安装的 mysql (5.7.32) 和 openssl (1.1.1h)。
    【解决方案4】:

    对我来说是:

    brew install mysql-connector-c 
    pip install MySQL-python
    pip install mysql-connector
    

    【讨论】:

      【解决方案5】:

      那些在 Ubuntu 上遇到这个问题的人,即使在安装了所有必需的软件包之后也是如此。他们可以关注这个

      • 从官方网址复制 my_config.h 的源代码-

      https://dev.mysql.com/doc/dev/mysql-server/8.0.11/my__config_8h_source.html

      然后在/usr/include/my_config.h中创建一个文件并粘贴

      sudo nano /usr/include/my_config.h
      

      您可以使用 ctrl + shift + v 粘贴内容,具体取决于您的发行版。

      现在安装包,你的版本或没有版本。

       pip install mysqlclient==1.3.7
      

      根据SQL版本,你可以从官方链接获取文件源。

      原始链接 - http://www.kombitz.com/2020/04/29/my_config-h-no-such-file-or-directory-on-centos-8/

      【讨论】:

        【解决方案6】:

        只需卸载您的 Mysql,然后安装 MySql 5.7 并且是固定的!!!!

        如果以上任何一种方案都没有成功,说明你的MySql版本不符合要求。我在想这是因为 Python 或 PyCharm,我使用了 virtualenv 和 conda 但没有运气,所以当我将我的依赖项与我朋友的一台计算机进行比较时,它是 MySql 版本。降级到 5.7 并且工作正常。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2013-12-01
          • 2016-12-21
          • 2017-11-15
          • 2016-11-27
          • 2020-12-11
          相关资源
          最近更新 更多