Will Dpard
Will Dpard

Reputation: 211

"OSError: mysql_config not found" when trying to "pip install mysqlclient" - Django

I'm relatively new to Django, and Web Development in general.

I am trying to

pip install mysqlclient

in my

virtualenv -p python3

to hook up Django 2.0 to mySQL. However, I'm getting this error:

Collecting mysqlclient
Using cached mysqlclient-1.3.12.tar.gz
Complete output from command python setup.py egg_info:
/bin/sh: mysql_config: command not found
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/private/var/folders/43/md5vpqrx0mx8627sq04slbz00000gn/T/pip-build-l8ea3vja/mysqlclient/setup.py", line 17, in <module>
    metadata, options = get_config()
  File "/private/var/folders/43/md5vpqrx0mx8627sq04slbz00000gn/T/pip-build-l8ea3vja/mysqlclient/setup_posix.py", line 44, in get_config
    libs = mysql_config("libs_r")
  File "/private/var/folders/43/md5vpqrx0mx8627sq04slbz00000gn/T/pip-build-l8ea3vja/mysqlclient/setup_posix.py", line 26, in mysql_config
    raise EnvironmentError("%s not found" % (mysql_config.path,))
OSError: mysql_config not found

----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /private/var/folders/43/md5vpqrx0mx8627sq04slbz00000gn/T/pip-build-l8ea3vja/mysqlclient/

I have looked around for answers for hours, and yes, I have checked out this and this but nothing seems to be working.

Any help would be much appreciated!

Upvotes: 6

Views: 16314

Answers (4)

Eugene Yarmash
Eugene Yarmash

Reputation: 149806

If you get OSError: mysql_config not found when installing the mysqlclient Python package in macOS, then just do:

brew install mysql-client
export PATH="/usr/local/opt/mysql-client/bin:$PATH"

and retry.

Upvotes: 3

Tobias
Tobias

Reputation: 5108

For CentOS here's what made it work for me:

yum install gcc mysql-devel openssl-devel

#Install library explicitly, otherwise the python3 setup.py install will fail
pip3 install "mysqlclient==2.0.3" --global-option=build_ext --global-option="-L/usr/lib64/mysql/"

Upvotes: 1

cptsrd
cptsrd

Reputation: 339

the python package "mysqlclient" is depended on C system library to drive mysql connect,if you on ubuntu 16.4, just do as below:

sudo apt-get install libmysqlclient-dev
sudo pip install mysqlclient

Upvotes: 22

Pranjal Aswani
Pranjal Aswani

Reputation: 109

You should start with cloning the mysqlclient repo:

git clone https://github.com/PyMySQL/mysqlclient-python

Then you will have to get mysql-connector-c. You can get it by doing:

brew install mysql-connector-c

Then open /usr/local/bin/mysql_config in a text editor.

From the Github issue:

There are lines in mysql_config like following:

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

It should be:

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

Save that file and change back to the directory where you downloaded the repo. Now open site.cfg file. uncomment the line (remove the #)

#mysql_config = /usr/local/bin/mysql_config

Save that and run:

python3 setup.py install

Upvotes: 2

Related Questions