Install mysqlclient for Django Python on Mac OS X Sierra

37,374

Solution 1

I needed the following to build / install mysqlclient

brew install mysql-client
# mysql-client is not on the `PATH` by default
export PATH="/usr/local/opt/mysql-client/bin:$PATH"
# openssl is not on the link path by default
export LIBRARY_PATH="$LIBRARY_PATH:/usr/local/opt/openssl/lib/"

Then I could pip wheel mysqlclient / pip install mysqlclient successfully

Solution 2

I have encountered this problem too,below is my step:

1.brew install mysql-connector-c

2.pip install mysqlclient

and then encountered this error,i have Traced the source code,but solved this one then the other error occured.

so i changed the way to install mysqlclient,just :

1.brew install mysql

2.pip install mysqlclient

this worked for me,no any errors occured.

Solution 3

Install mysql-client instead of mysql if you don't plan to have mysql in your computer

brew install mysql-client

echo 'export PATH="/usr/local/opt/mysql-client/bin:$PATH"' >> ~/.bash_profile

source ~/.bash_profile

pip install mysqlclient

export LDFLAGS="-L/usr/local/opt/openssl/lib"

export CPPFLAGS="-I/usr/local/opt/openssl/include"

Solution 4

brew install/upgrade/reinstall mysql
brew install mysql-client
export PATH="/usr/local/opt/openssl/bin:$PATH"
export LDFLAGS="-L/usr/local/opt/openssl/lib"
export CPPFLAGS="-I/usr/local/opt/openssl/include"
pip install mysqlclient
works perfectly

Solution 5

For Mac: first download Xcode from App Store and MySqlWorkbench from https://dev.mysql.com/downloads/workbench/

Run the following commands in terminal,

$ brew install mysql

$ export PATH=$PATH:/Applications/MySQLWorkbench.app/Contents/MacOS

$ xcode-select --install

$ pip install mysqlclient
Share:
37,374

Related videos on Youtube

Андрей Морченко
Author by

Андрей Морченко

Updated on June 12, 2021

Comments

  • Андрей Морченко
    Андрей Морченко about 3 years

    I have already installed

    • Python 2.7.13
    • Django 1.11
    • MySQL 5.7.17

    I want use MySQL with Django, but after install mysql connector I was try to install mysqlclient for Python on $ pip install mysqlclient, but I have this issue:

    Collecting mysqlclient
      Using cached mysqlclient-1.3.10.tar.gz
        Complete output from command python setup.py egg_info:
        Traceback (most recent call last):
          File "<string>", line 1, in <module>
          File "/private/var/folders/y_/c31n_1v12v169zfv829p_v_80000gn/T/pip-build-f51KhW/mysqlclient/setup.py", line 17, in <module>
            metadata, options = get_config()
          File "setup_posix.py", line 54, in get_config
            libraries = [dequote(i[2:]) for i in libs if i.startswith('-l')]
          File "setup_posix.py", line 12, in dequote
            if s[0] in "\"'" and s[0] == s[-1]:
        IndexError: string index out of range
    
        ----------------------------------------
    Command "python setup.py egg_info" failed with error code 1 in /private/var/folders/y_/c31n_1v12v169zfv829p_v_80000gn/T/pip-build-f51KhW/mysqlclient/
    
  • CarmenA
    CarmenA over 6 years
    this is the only thing that worked for me, and I think most importantly is using "brew install mysql" cause with "brew install mysql-connector-c" I get same error from the question.
  • Zaira Zafar
    Zaira Zafar almost 6 years
    this approach doesn't work for me. Can you suggest something else?
  • ballzeri0
    ballzeri0 over 5 years
    this should be the answer
  • tsmets
    tsmets over 5 years
    Last command failed on my Mac with a massive stacktrace, starting with : [code]Building wheels for collected packages: mysqlclient Building wheel for mysqlclient (setup.py) ... error Complete output from command /Users/tsmets/Documents/work/Projects/ISO27001RiskAssessment‌​/site/venv/bin/pytho‌​n3.7 -u -c "import setuptools, tokenize;__file__='/private/var/folders/9l/ffh99l291kb9d_1_9‌​mz3sq080000gn/T/pip-‌​install-efrwnshd/mys‌​qlclient/setup.py';f‌​=getattr(tokenize, 'open', open)(file);code=f.read().replace('\r\n', '\n');f.close();exec... [/code]
  • Nanhydrin
    Nanhydrin almost 5 years
    Please edit your answer to include some information on how it answers the question. This will make your answer more understandable and useful to the original poster and to future visitors. Thank you.
  • linehrr
    linehrr almost 5 years
    run those exports first. you will get it working. @tsmets
  • Saurabh Shrivastava
    Saurabh Shrivastava about 4 years
    I am using mac and tried everything available on internet for 2 days and nothing worked except your solution. Thanks a lot.
  • Alfredo Rodriguez
    Alfredo Rodriguez almost 4 years
    I can confirm this worked for macOS Catalina 10.15.5, Python 3.8, Django 3.0.7 and mysql 8.0.19. Thank you!
  • Ben Daggers
    Ben Daggers about 3 years
    after morethan 2 hours of searching and trying to figure out how to make mysqlclient installation work, i am tired and hopelessly tried your solution... and voila! it worked! Thank you!!!
  • sashaegorov
    sashaegorov over 2 years
    That worked for me, thank you. It seems this is the only relevant solution in 2022