27

I am new to python and I am trying django framework that involves some MySql and ran into this error when try to do pip install mysqlclient and down the lines of cmd messages I got this.

   Failed building wheel for mysqlclient
  Running setup.py clean for mysqlclient
Failed to build mysqlclient
Installing collected packages: mysqlclient
  Running setup.py install for mysqlclient ... error
    Complete output from command c:\users\ronanl~1\envs\py1\scripts\python.exe -u -c "import setuptools, tokenize;__file__='C:\\Users\\RONANL~1\\AppData\\Local\\Temp\\pip-install-pkbqy3t3\\mysqlclient\\setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record C:\Users\RONANL~1\AppData\Local\Temp\pip-record-moxwf7lu\install-record.txt --single-version-externally-managed --compile --install-headers c:\users\ronanl~1\envs\py1\include\site\python3.7\mysqlclient:
    running install
    running build
    running build_py
    creating build
    creating build\lib.win32-3.7
    copying _mysql_exceptions.py -> build\lib.win32-3.7
    creating build\lib.win32-3.7\MySQLdb
    copying MySQLdb\__init__.py -> build\lib.win32-3.7\MySQLdb
    copying MySQLdb\compat.py -> build\lib.win32-3.7\MySQLdb
    copying MySQLdb\connections.py -> build\lib.win32-3.7\MySQLdb
    copying MySQLdb\converters.py -> build\lib.win32-3.7\MySQLdb
    copying MySQLdb\cursors.py -> build\lib.win32-3.7\MySQLdb
    copying MySQLdb\release.py -> build\lib.win32-3.7\MySQLdb
    copying MySQLdb\times.py -> build\lib.win32-3.7\MySQLdb
    creating build\lib.win32-3.7\MySQLdb\constants
    copying MySQLdb\constants\__init__.py -> build\lib.win32-3.7\MySQLdb\constants
    copying MySQLdb\constants\CLIENT.py -> build\lib.win32-3.7\MySQLdb\constants
    copying MySQLdb\constants\CR.py -> build\lib.win32-3.7\MySQLdb\constants
    copying MySQLdb\constants\ER.py -> build\lib.win32-3.7\MySQLdb\constants
    copying MySQLdb\constants\FIELD_TYPE.py -> build\lib.win32-3.7\MySQLdb\constants
    copying MySQLdb\constants\FLAG.py -> build\lib.win32-3.7\MySQLdb\constants
    copying MySQLdb\constants\REFRESH.py -> build\lib.win32-3.7\MySQLdb\constants
    running build_ext
    building '_mysql' extension
    creating build\temp.win32-3.7
    creating build\temp.win32-3.7\Release
    C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.14.26428\bin\HostX86\x86\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD -Dversion_info=(1,3,13,'final',0) -D__version__=1.3.13 "-IC:\Program Files (x86)\MySQL\MySQL Connector C 6.1\include" "-Ic:\users\ronan lina\appdata\local\programs\python\python37-32\include" "-Ic:\users\ronan lina\appdata\local\programs\python\python37-32\include" "-IC:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.14.26428\ATLMFC\include" "-IC:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.14.26428\include" "-IC:\Program Files (x86)\Windows Kits\NETFXSDK\4.6.1\include\um" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17134.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17134.0\shared" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17134.0\um" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17134.0\winrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17134.0\cppwinrt" /Tc_mysql.c /Fobuild\temp.win32-3.7\Release\_mysql.obj /Zl
    _mysql.c
    _mysql.c(29): fatal error C1083: Cannot open include file: 'mysql.h': No such file or directory
    error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio\\2017\\Community\\VC\\Tools\\MSVC\\14.14.26428\\bin\\HostX86\\x86\\cl.exe' failed with exit status 2
> 
> 
> Command "c:\users\ronanl~1\envs\py1\scripts\python.exe -u -c "import setuptools, tokenize;__file__='C:\\Users\\RONANL~1\\AppData\\Local\\Temp\\pip-install-pkbqy3t3\\mysqlclient\\setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record C:\Users\RONANL~1\AppData\Local\Temp\pip-record-moxwf7lu\install-record.txt --single-version-externally-managed --compile --install-headers c:\users\ronanl~1\envs\py1\include\site\python3.7\mysqlclient" failed with error code 1 in C:\Users\RONANL~1\AppData\Local\Temp\pip-install-pkbqy3t3\mysqlclient\

anyone knows how to fix this ?

Eugene Primako
  • 2,767
  • 9
  • 26
  • 35
ronan
  • 369
  • 1
  • 4
  • 13
  • This might help: https://stackoverflow.com/a/4290261/747744 – Eugene Primako Jun 30 '18 at 18:51
  • 8
    I can’t help with building the wheel for Python 3.7, but if you just want to use Python 3 with mysqlclient, then `pip install mysqlclient==1.3.12` With Python 3.6 should install a prebuilt wheel without any issues. – Alasdair Jun 30 '18 at 20:18
  • 2
    You could try this unofficial wheel https://www.lfd.uci.edu/~gohlke/pythonlibs/#mysqlclient – iklinac Jun 30 '18 at 21:07
  • 2
    Glad you got it working. It’s best to use the latest 3.6.x, to make sure you get the latest bug and security fixes. – Alasdair Jul 01 '18 at 14:38
  • 2
    pip install mysqlclient==1.3.12 helped me.I was in python 3.7, then uninstalled that and installed python 3.6.5. Then that command worked for me – Shamsul Arefin Aug 05 '18 at 15:56
  • Installing this 'sudo apt-get install libssl-dev' solved for me – Junaid Jan 02 '20 at 07:21

13 Answers13

23

You need to install the following dependencies before installing mysqlclient for python 3.7 in your system.

sudo apt-get install python3.7-dev default-libmysqlclient-dev

I hope this will help you.

PyMaster
  • 1,094
  • 7
  • 11
22

I installed the following library on Ubuntu and after that, the issue got resolved.

sudo apt-get install libssl-dev

and then I was able to install mysqlclient using the following command

pip install mysqlclient
Antu
  • 2,197
  • 3
  • 25
  • 40
Junaid
  • 609
  • 1
  • 10
  • 27
5

currently the mysql-connector for python 3.7 is not available in official wesite but u can fix this issue by installing wheel with specific windows and python version. this solutionpip install (ex/dir)/mysqlclient-1.3.13-cp37-cp37m-win_amd64.whl for win 64-bi and python 3.7

check the link below and download the specific wheel for your system. download and install the wheel for specific version by using "pip install (full path with file name in my case ex:-"pip install C:\Users\%user%\Downloads\mysqlclient-1.3.13-cp37-cp37m-win_amd64.whl")

BfutureP
  • 71
  • 1
  • 4
4

I installed it with the following command and works well now (on Mac): LDFLAGS=-L/usr/local/opt/openssl/lib pip install mysqlclient

see connected answer: Error installing mysql-python: library not found for -lssl

István Döbrentei
  • 948
  • 10
  • 20
4

This should work.

Do this first

sudo apt-get install python3.7-dev

And Then

pip install mysqlclient
Shedrack
  • 656
  • 7
  • 22
3

You have to install "mysqlclient-1.4.1-cp37-cp37m-win32.whl" (32bit) file

  1. Download 32bit file from https://www.lfd.uci.edu/~gohlke/pythonlibs/#mysqlclient
  2. if your file is in Downloads folder write the command in your cmd

    i. cd C:\Users\Nour Noby\Downloads ["Nour Noby" should be changed ]

    ii. pip install mysqlclient-1.4.1-cp37-cp37m-win32.whl ["mysqlclient-1.4.1-cp37-cp37m-win32.whl" should be replaced with your downloaded filename ].

Nour Noby
  • 97
  • 1
  • 3
2

As of 2019, here is how to run smoothly pip install mysqlclient on MacOS:

brew info openssl and follow the commands at the bottom

  echo 'export PATH="/usr/local/opt/openssl/bin:$PATH"' >> ~/.zshrc

Other approaches:

  • brew install/upgrade/reinstall mysql : did not fix the issue for me, but has the nice side effect to make sure your installation is clean.
  • brew install mysql-connector-c : to make that work you have to unlink mysql, which ruins your setup and it did not fix the issue for me.
louis_guitton
  • 5,105
  • 1
  • 31
  • 33
2

ensuring you have had done the needful with python...

and installing on the global level... (not virtual environment)

sudo apt-get install mysql-server pip install --upgrade setuptools

I had come across the same problem, because I installed default Python2.7.15, and python3 would break even after doing the needful for Python (being python2)

something that worked for me was (effectively the last one is what made it work, but i think they were equally required on my virtualenvironment with python3)

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

python3.7 in your case in the virtualenv

I also had to go through..

Mehdi
  • 61
  • 4
0

use this command : sudo apt-get install libssl-dev

Ravinder Kumar
  • 7,407
  • 3
  • 28
  • 54
0

In my case, I had the 32-bit version of Python installed, instead of the 64-bit one. Install 64-bit Python and it would work alright.

double-beep
  • 5,031
  • 17
  • 33
  • 41
0

try to change python3 to python or python3.7-dev or as installed on your machine.

sudo apt-get install python3 default-libmysqlclient-dev

-2

Use Anaconda and execute conda install mysqlclient

Dhanushka
  • 81
  • 1
  • 3