简体   繁体   English

Mac pip 安装 mysql-python 不成功

[英]Mac pip install mysql-python unsuccessful

I installed MySQL and Workbench from website.我从网站安装了 MySQL 和 Workbench。 I have a django project whose requirements.txt:我有一个 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

When I run当我跑

pip install -r requirements.txt

I got an error mysql_config not found .我收到错误mysql_config not found To solve this I ran为了解决这个问题,我跑了

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

It now throws它现在抛出

    _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/

Why is this happening?为什么会这样?

UPDATE: following bellow solution threw:更新:下面的解决方案抛出:

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

Installing of an older version of the MySQL worked for me:安装旧版本的 MySQL 对我有用:

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

See:看:

Please, try:请尝试:

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

If it does not work: First install mysql-connector-c如果不行:先安装mysql-connector-c

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

If you are using Windows:如果您使用的是 Windows:

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

You can also check what happend when you try install it with pip3.您还可以检查尝试使用pip3.安装时发生了pip3.

UPDATE: If you have Linux: Please open the /usr/local/bin/mysql_config .更新:如果你有 Linux:请打开/usr/local/bin/mysql_config

And then:进而:

#Create options
Libs = "-L $ pkglibdir "
Libs = " $ libs   -l"

replace with:用。。。来代替:

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

Save it and reinstall mysql-python .保存并重新安装mysql-python

pip uninstall mysql-python
pip install mysql-python

For Mac:对于 Mac:

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

should be helpful.应该有帮助。

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

For me it was:对我来说是:

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

Those who are facing this issue on Ubuntu even after installing all the required packages.即使在安装了所有必需的软件包后,那些在Ubuntu上仍面临此问题的人。 They can follow this他们可以按照这个

  • Copy the Source for my_config.h from official url-从官方网址复制my_config.h的源代码-

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

Then create a file in /usr/include/my_config.h and paste it然后在/usr/include/my_config.h中创建一个文件并粘贴

sudo nano /usr/include/my_config.h

you can paste the content using ctrl + shift + v, depending on your distribution.您可以使用 ctrl + shift + v 粘贴内容,具体取决于您的发行版。

Now install the package, your version or no version.现在安装软件包,您的版本或没有版本。

 pip install mysqlclient==1.3.7

You can get the source of the file from official link depending upon the SQL version.您可以根据 SQL 版本从官方链接获取文件源。

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

Just uninstall your Mysql, and install MySql 5.7 and is fixed!!!!只需卸载您的 Mysql,然后安装 MySql 5.7 即可修复!!!

If you are not successful from any of the above solutions, it means that your MySql version is not matching the requirements.如果您通过上述任何解决方案都没有成功,则意味着您的 MySql 版本不符合要求。 i was thinking that it is because of Python or PyCharm, and i used virtualenv and conda but no luck, so when i compared my dependencies to one of my friend's computer, it was MySql version.我在想这是因为 Python 或 PyCharm,我使用了 virtualenv 和 conda 但没有运气,所以当我将我的依赖项与我朋友的一台计算机进行比较时,它是 MySql 版本。 downgraded to 5.7 and its working fine.降级到 5.7 并且工作正常。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM