pip install mysql-python fails with EnvironmentError: mysql_config not found
It seems mysql_config is missing on your system or the installer could not find it.
Be sure mysql_config is really installed.
For example on Debian/Ubuntu you must install the package:
sudo apt-get install libmysqlclient-dev
Maybe the mysql_config is not in your path, it will be the case when you compile by yourself
the mysql suite.
Update: For recent versions of debian/ubuntu (as of 2018) it is
sudo apt install default-libmysqlclient-dev
Installing flask-mysqldb gives mysql_config not found
The error message is pretty clear:
OSError: mysql_config not found
You need mysql_config
. Install either libmariadbclient-dev
or libmysqlclient-dev
with apt
.
Then try using pip
again, but not with sudo
.
Mixing system-level Python packages and pip
-installed packages is a recipe for disaster. It looks like you already have a virtualenv for your project, so use that. Bonus points if you specify your dependencies in a requirements.txt
file or Pipfile
.
mysql_config not found when installing mysqldb python interface for mariadb 10 Ubuntu 13.10
Found it! The case is that mariadb has a compatible package, if you have the ppa setup as in http://downloads.mariadb.org/. Just
sudo apt-get install libmariadbclient-dev
Thanks to http://data-matters.blogspot.com/2013/08/install-mysql-python-with-mariadb.html
After this the mysql-python
installs correctly
Mac OS X - EnvironmentError: mysql_config not found
Ok, well, first of all, let me check if I am on the same page as you:
- You installed python
- You did
brew install mysql
- You did
export PATH=$PATH:/usr/local/mysql/bin
- And finally, you did
pip install MySQL-Python
(orpip3 install mysqlclient
if using python 3)
If you did all those steps in the same order, and you still got an error, read on to the end, if, however, you did not follow these exact steps try, following them from the very beginning.
So, you followed the steps, and you're still geting an error, well, there are a few things you could try:
Try running
which mysql_config
from bash. It probably won't be found. That's why the build isn't finding it either. Try runninglocate mysql_config
and see if anything comes back. The path to this binary needs to be either in your shell's $PATH environment variable, or it needs to be explicitly in the setup.py file for the module assuming it's looking in some specific place for that file.Instead of using MySQL-Python, try using 'mysql-connector-python', it can be installed using
pip install mysql-connector-python
. More information on this can be found here and here.Manually find the location of 'mysql/bin', 'mysql_config', and 'MySQL-Python', and add all these to the $PATH environment variable.
If all above steps fail, then you could try installing 'mysql' using MacPorts, in which case the file 'mysql_config' would actually be called 'mysql_config5', and in this case, you would have to do this after installing:
export PATH=$PATH:/opt/local/lib/mysql5/bin
. You can find more details here.
Note1: I've seen some people saying that installing python-dev
and libmysqlclient-dev
also helped, however I do not know if these packages are available on Mac OS.
Note2: Also, make sure to try running the commands as root.
I got my answers from (besides my brain) these places (maybe you could have a look at them, to see if it would help): 1, 2, 3, 4.
I hoped I helped, and would be happy to know if any of this worked, or not. Good luck.
Related Topics
Decode HTML Entities in Python String
Pass Input/Variables to Command/Script Over Ssh Using Python Paramiko
In Python Script, How to Set Pythonpath
Difference Between _Str_ and _Repr_
How to Read/Process Command Line Arguments
Return Json Response from Flask View
A Weighted Version of Random.Choice
Access Nested Dictionary Items Via a List of Keys
Strip HTML from Strings in Python
Python Pysftp Get_R from Linux Works Fine on Linux But Not on Windows
How to Get Output from Subprocess.Popen(). Proc.Stdout.Readline() Blocks, No Data Prints Out
Regexp Finding Longest Common Prefix of Two Strings
Replacements For Switch Statement in Python