Thinker
Thinker

Reputation: 5356

Mac pip install mysql-python unsuccessful

I installed MySQL and Workbench from website. I have a django project whose 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. 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

Upvotes: 13

Views: 22050

Answers (6)

mohammed_ayaz
mohammed_ayaz

Reputation: 679

Those who are facing this issue on Ubuntu even after installing all the required packages. They can follow this

  • Copy the Source for my_config.h from official url-

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

sudo nano /usr/include/my_config.h

you can paste the content using ctrl + shift + v, depending on your distribution.

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.

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

Upvotes: 0

Tianwang Li
Tianwang Li

Reputation: 51

brew install [email protected]
export PATH="/usr/local/Cellar/[email protected]/5.7.29/bin:$PATH"
export LDFLAGS="-L/usr/local/Cellar/[email protected]/5.7.29/lib -L/usr/local/Cellar/[email protected]/1.1.1d/lib"
export CPPFLAGS="-I/usr/local/Cellar/[email protected]/5.7.29/include -I/usr/local/Cellar/[email protected]/1.1.1d/include"
/Users/tivanli/source/bk_project/pizza/venv/bin/pip install MySQL-python==1.2.5

Upvotes: 4

Syed ADnan
Syed ADnan

Reputation: 5

Just uninstall your Mysql, and install MySql 5.7 and is fixed!!!!

If you are not successful from any of the above solutions, it means that your MySql version is not matching the requirements. 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. downgraded to 5.7 and its working fine.

Upvotes: -3

David Webster
David Webster

Reputation: 2321

For me it was:

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

Upvotes: 0

Sergey Belash
Sergey Belash

Reputation: 1471

Installing of an older version of the MySQL worked for me:

brew remove mysql
brew install [email protected]
brew link --force [email protected]
pip install mysql-python

See:

Upvotes: 39

user9008857
user9008857

Reputation:

Please, try:

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

If it does not work: First install mysql-connector-c

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

If you are using Windows:

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

You can also check what happend when you try install it with pip3.

UPDATE: If you have Linux: Please open the /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.

pip uninstall mysql-python
pip install mysql-python

For Mac:

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

should be helpful.

Upvotes: 13

Related Questions