This post will help you fix the issue of pip or pip3 install not working for flask_mysqldb.
The error might include that:
pip install flask_mysqldb
Collecting flask_mysqldb
Using cached Flask-MySQLdb-0.2.0.tar.gz (2.1 kB)
Collecting Flask>=0.10
Using cached Flask-1.1.2-py2.py3-none-any.whl (94 kB)
Collecting mysqlclient
Using cached mysqlclient-1.4.6.tar.gz (85 kB)
ERROR: Command errored out with exit status 1:
command: /System/Library/Frameworks/Python.framework/Versions/2.7/Resources/Python.app/Contents/MacOS/Python -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/private/var/folders/__/j8b0d7wn7_796hd4c4x56f040000gn/T/pip-install-rCiijx/mysqlclient/setup.py'"'"'; __file__='"'"'/private/var/folders/__/j8b0d7wn7_796hd4c4x56f040000gn/T/pip-install-rCiijx/mysqlclient/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base /private/var/folders/__/j8b0d7wn7_796hd4c4x56f040000gn/T/pip-pip-egg-info-0D9Xsz
cwd: /private/var/folders/__/j8b0d7wn7_796hd4c4x56f040000gn/T/pip-install-rCiijx/mysqlclient/
Complete output (12 lines):
sh: mysql_config: command not found
sh: mariadb_config: command not found
sh: mysql_config: command not found
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/private/var/folders/__/j8b0d7wn7_796hd4c4x56f040000gn/T/pip-install-rCiijx/mysqlclient/setup.py", line 16, in <module>
metadata, options = get_config()
File "setup_posix.py", line 61, in get_config
libs = mysql_config("libs")
File "setup_posix.py", line 29, in mysql_config
raise EnvironmentError("%s not found" % (_mysql_config_path,))
EnvironmentError: mysql_config not found
----------------------------------------
ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.
Solution:
Step 1: is to install brew if you don’t have it on your mac. Install it from brew official website: brew.sh or by running this command (copied from their website):
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
You might have to close the terminal and launch again to make brew work after fresh install, otherwise it will give an error brew: command not found
even when brew is installed.
Step 2: Install mysql
brew install mysql
Step 3: unlink mysql:
brew unlink mysql
Step 4: install mysql-connector-c
brew install mysql-connector-c
Step 5: Add mysql bin folder to PATH
Note: Make sure that the mysql folder with version number is correct, 8.0.11 in this example.
export PATH=/usr/local/Cellar/mysql/8.0.11/bin:$PATH
Step 6: Create required folders:
sudo mkdir /usr/local/Cellar/lib
# if it fails with "No such file or directory"
# create the Cellar folder first by:
sudo mkdir /usr/local/Cellar
# and then run the first command again
sudo mkdir /usr/local/Cellar/lib
Step 7: Create a symlink
Again, make sure that the folder name with mysql version number is correct, here 8.0.11
sudo ln -s /usr/local/Cellar/mysql/8.0.11/lib/libmysqlclient.21.dylib /usr/local/Cellar/lib/libmysqlclient.21.dylib
Step 8: Reinstall openssl
brew reinstall openssl
Step 9: Link mysql again:
brew link mysql
Step 10: Reinstall mysql-client (or anything else that was giving error
LIBRARY_PATH=$LIBRARY_PATH:/usr/local/opt/openssl/lib/ pip install mysqlclient
# or
pip3 install flask_mysqldb