Error Installing mysqlclient on Ubuntu 16.04 using pip and Python 3.6


I had trouble installing mysqlclient on python 3.6.3, so I downgraded to version 3.6.2 and it worked.

sudo apt-get install build-essential checkinstall
sudo apt-get install libreadline-gplv2-dev  libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev
cd /usr/bin
sudo wget https://www.python.org/ftp/python/3.6.2/Python-3.6.2.tgz
sudo tar xzf Python-3.6.2.tgz
cd Python-3.6.2
sudo ./configure --enable-optimizations
sudo make altinstall

python3.6 should point at 3.6.2

python --version # Python 3.6.2

now install mysqlclient

python3.6 -m pip install mysqlclient

read more


I found the problem, seems like for installing mysqlclient in python3.6 the library python3.6-dev is required.

Just open a terminal and run the following command:

sudo apt-get install python3.6-dev libmysqlclient-dev

You may get the following error when trying to install the library:

Reading state information...
E: Unable to locate package python3.6-dev
E: Couldn't find any package by glob 'python3.6-dev'
E: Couldn't find any package by regex 'python3.6-dev'

If that is the case, just try adding the following repository first:

sudo add-apt-repository ppa:jonathonf/python-3.6
sudo apt-get update

After doing so, you should be able to install both python3.6 and python3.6-dev packages.


I'm getting this error

/usr/bin/ld: cannot find -lssl
/usr/bin/ld: cannot find -lcrypto
collect2: error: ld returned 1 exit status
error: command 'x86_64-linux-gnu-gcc' failed with exit status 1

1 Solution

Open new terminal and run this command

sudo apt-get install libssl-dev

after that install mysqlclient

pip install mysqlclient

2 Solution

Install MySQL database connector

First thing we will need to do is install python3-dev. You can install python3-dev by running the following command:

sudo apt-get install python3-dev

Once python3-dev is installed, we can install the necessary Python and MySQL development headers and libraries:

sudo apt-get install python3-dev libmysqlclient-dev

Then, we will use pip3 to install the mysqlclient library from PyPi. Since our version of pip points to pip3, we can just use pip.

pip install mysqlclient

Reference Link : How To Create a Django App and Connect it to a Database