Mac pip install mysql-python unsuccessful

20,148

Solution 1

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:

Solution 2

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
Share:
20,148
Thinker
Author by

Thinker

Updated on August 23, 2020

Comments

  • Thinker
    Thinker almost 4 years

    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
    
  • the_marcelo_r
    the_marcelo_r over 5 years
    Thanks a mil! Spent a few minutes struggling with this until I found your answer :)
  • fullStackChris
    fullStackChris about 4 years
    This was it! It was the MySQL version 5.7 that did the trick. (I had to install an older MySQL-python version 1.2.5)
  • Bart Mensfort
    Bart Mensfort over 3 years
    I used my_config.h from mariadb and put it in /usr/include. Then pip2 install mysql-python works perfect.
  • Banjer
    Banjer over 3 years
    Works great on Catalina 10.15.7 for an old python project I had to stand up. Just had to update the paths to reflect the mysql (5.7.32) and openssl (1.1.1h) that get installed at the present time.