Installing mysqlclient on Ubuntu 22.04 / 24.04
Error Like:
Exception: Can not find valid pkg-config name.
Specify MYSQLCLIENT_CFLAGS and MYSQLCLIENT_LDFLAGS env vars manually
note: This error originates from a subprocess, and is likely not a problem with pip.
error: subprocess-exited-with-error
× Getting requirements to build wheel did not run successfully.
│ exit code: 1
╰─> See above for output.
note: This error originates from a subprocess, and is likely not a problem with pip.
Solution:
sudo apt install libmysqlclient-dev
# OR
sudo apt install libmariadb-dev-compat
You can use the mysql_config
command to retrieve this information.
Now you need to Set the MYSQLCLIENT_CFLAGS
and MYSQLCLIENT_LDFLAGS
environment variable.
mysql_config --cflags
# OUTPUT: -I/usr/include/mysql
mysql_config --libs
# OUTPUT: -L/usr/lib/x86_64-linux-gnu -lmysqlclient -lz -lzstd -lssl -lcrypto -lresolv -lm
Set the MYSQLCLIENT_CFLAGS
environment variable. Replace '' with the path you obtained from the mysql_config --cflags
command. Run the following command: export MYSQLCLIENT_CFLAGS="-I"
export MYSQLCLIENT_CFLAGS="-I/usr/include/mysql"
Set the MYSQLCLIENT_LDFLAGS
environment variable. Replace '' with the path you obtained from the mysql_config --libs
command. Run the following command: export MYSQLCLIENT_LDFLAGS="-L"
Note: If your MySQL installation includes multiple libraries, separate each library path with a space.
export MYSQLCLIENT_LDFLAGS="-L/usr/lib/x86_64-linux-gnu -lmysqlclient -lz -lzstd -lssl -lcrypto -lresolv -lm"
Now, when you install packages that require the MySQL client library.
pip install mysqlclient
Additional:
sudo apt-get install pkg-config build-essential
sudo bash -c "apt-get update && apt-get -y upgrade && apt-get -y autoremove && apt-get -y clean"
Subscribe to my newsletter
Read articles from Sanjay Sikdar directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by
Sanjay Sikdar
Sanjay Sikdar
Software developer who enjoys developing software, solving challenges, and programming.