20

i'm tryng to import mysqlclient library for python with pip, when i use the command
pip install mysqlclient it return an error:

Collecting mysqlclient
Using cached     https://files.pythonhosted.org/packages/ec/fd/83329b9d3e14f7344d1cb31f128e6dbba70c5975c9e57896815dbb1988ad/mysqlclient-1.3.13.tar.gz
Installing collected packages: mysqlclient
Running setup.py install for mysqlclient ... error
Complete output from command c:\users\astrina\appdata\local\programs\python\python36\python.exe -u -c "import setuptools, tokenize;__file__='C:\\Users\\astrina\\AppData\\Local\\Temp\\pip-install-40l_x_f4\\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\astrina\AppData\Local\Temp\pip-record-va173t5v\install-record.txt --single-version-externally-managed --compile:
c:\users\astrina\appdata\local\programs\python\python36\lib\distutils\dist.py:261: UserWarning: Unknown distribution option: 'long_description_content_type'
  warnings.warn(msg)
running install
running build
running build_py
creating build
creating build\lib.win-amd64-3.6
copying _mysql_exceptions.py -> build\lib.win-amd64-3.6
creating build\lib.win-amd64-3.6\MySQLdb
copying MySQLdb\__init__.py -> build\lib.win-amd64-3.6\MySQLdb
copying MySQLdb\compat.py -> build\lib.win-amd64-3.6\MySQLdb
copying MySQLdb\connections.py -> build\lib.win-amd64-3.6\MySQLdb
copying MySQLdb\converters.py -> build\lib.win-amd64-3.6\MySQLdb
copying MySQLdb\cursors.py -> build\lib.win-amd64-3.6\MySQLdb
copying MySQLdb\release.py -> build\lib.win-amd64-3.6\MySQLdb
copying MySQLdb\times.py -> build\lib.win-amd64-3.6\MySQLdb
creating build\lib.win-amd64-3.6\MySQLdb\constants
copying MySQLdb\constants\__init__.py -> build\lib.win-amd64-3.6\MySQLdb\constants
copying MySQLdb\constants\CLIENT.py -> build\lib.win-amd64-3.6\MySQLdb\constants
copying MySQLdb\constants\CR.py -> build\lib.win-amd64-3.6\MySQLdb\constants
copying MySQLdb\constants\ER.py -> build\lib.win-amd64-3.6\MySQLdb\constants
copying MySQLdb\constants\FIELD_TYPE.py -> build\lib.win-amd64-3.6\MySQLdb\constants
copying MySQLdb\constants\FLAG.py -> build\lib.win-amd64-3.6\MySQLdb\constants
copying MySQLdb\constants\REFRESH.py -> build\lib.win-amd64-3.6\MySQLdb\constants
running build_ext
building '_mysql' extension
error: Microsoft Visual C++ 14.0 is required. Get it with "Microsoft Visual C++ Build Tools": http://landinghub.visualstudio.com/visual-cpp-build-tools

----------------------------------------
Command "c:\users\astrina\appdata\local\programs\python\python36\python.exe -u -c "import setuptools, 
tokenize;__file__='C:\\Users\\astrina\\AppData\\Local\\Temp\\pip-install- 
40l_x_f4\\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\astrina\AppData\Local\Temp\pip- 
record-va173t5v\install-record.txt --single-version-externally-managed -- 
compile" failed with error code 1 in C:\Users\astrina\AppData\Local\Temp\pip- 
install-40l_x_f4\mysqlclient\

I've already installed Microsoft Build Tools 2015 but the problem persist

7
  • You need to install the specified version, not 2015. Microsoft Visual C++ 14.0 instead. Commented Jun 27, 2018 at 13:26
  • Done but the problem persist Commented Jun 27, 2018 at 13:44
  • Are you sure you've installed Build Tools and not Redistributable package? Commented Jun 27, 2018 at 16:22
  • 1
    To install a Python DB API driver for MySQL you can try mysql-connector or PyMySQL. Commented Jun 27, 2018 at 16:26
  • i think i've installed the correct one, can you give me the correct link? Commented Jun 28, 2018 at 7:22

13 Answers 13

44

You may need to install the Python 3 and MySQL development headers and libraries like so: For UBUNTU or Debian

sudo apt-get install python3-dev default-libmysqlclient-dev build-essential

Red Hat / CentOS

sudo yum install python3-devel mysql-devel

Then try

pip install mysqlclient
Sign up to request clarification or add additional context in comments.

1 Comment

Just a note: if you are doing this in a docker container, then you also likely need to install gcc
18

First install python 3.6.5, then run

pip install mysqlclient==1.3.12

Comments

6

Try download and install from wheel instead. Take note of your python version and download the correct one.

https://www.lfd.uci.edu/~gohlke/pythonlibs/#mysqlclient

3 Comments

While this link may answer the question, it is better to include the essential parts of the answer here and provide the link for reference. Link-only answers can become invalid if the linked page changes. - From Review
@PhilippMaurer That link is not a link to an answer but just to the download. The answer is the sentence before the link. It might not be a great one, it might not even be correct, I don't know, but it is an answer and should not be flagged as not being one.
I'll explain a bit here... if you are using python3.7 you should download mysqlclient‑1.4.2‑cp37‑cp37m‑win32.whl for 32-bit window. and same for python3.5 => mysqlclient‑1.4.2‑cp35‑cp35m‑win_amd64.whl for 64-bit windows. here you can compare cp number with python version. for your windows type
6

For me, it was a mixture of an old setup tools and missing packages

pip install --upgrade setuptools

apt install gcc libssl-dev

Comments

6

Install below packages and it will resolve the issue.

apt-get install python3-dev default-libmysqlclient-dev build-essential

Comments

3

Try pip install --only-binary :all: mysqlclient Worked for me

1 Comment

shows " Could not find a version that satisfies the requirement mysqlclient (from versions: ) No matching distribution found for mysqlclient "
2

First try this command

(keep space properly ie, pip space install space --only-binary space :all: space mysqlclient)

pip install --only-binary :all: mysqlclient if still error then try this... Go to this website Python Extension package and press ctrl+F and search mysqlclient. You will find a file name like this.. mysqlclient‑1.4.5‑cp38‑cp38‑win_amd64.whl

Choose carefully ---According to python version There is a step given to choose it.

  1. cp38 means for python 3.8 version and cp 37 means for python 3.6 version so first check your python version wether it is 3.8,3.7,3.6,3.5,3.4 then download accordingly.

  2. amd64--- while checking python version also check whether your python is of 64-bit or 32-bit. then select accordingly. If your python is of 32-bit then select amd32.

Otherwise you will face problem. Then download the file and install it manually using pip command. There are steps given below:-

After download open command prompt and go to that directory where that downloaded file available( or better to cut that file and paste into your desktop) and type: NOTE :- PLEASE TYPE AFTER DOWNLOAD THE FILE... This is for python 3.8 and 64-bit $ pip install mysqlclient‑1.4.5‑cp38‑cp38‑win_amd64.whl For python 3.7 and 32-bit $ pip install mysqlclient‑1.4.5‑cp37‑cp37m‑win32.whl

Comments

1

You can set ssl library path explicitly.

LDFLAGS=-L/usr/local/opt/openssl/lib pip install mysqlclient

Comments

1

I had look a like problem, on MacOs Catalina, solved with this:

ARCHFLAGS="-arch x86_64" pip3 install mysqlclient

1 Comment

I tried EVERYTHING and nothing worked for me except for this.
0

Better if you install python 64-bit. Then pip install mysqlclient will work sure otherwise you can follow these stepssteps to install using python extension packages

Comments

0
  1. Install build-essential

    sudo apt-get install build-essential

  2. Install mysqlclient

    pip install mysqlclient

1 Comment

This is for Ubuntu - can you post the centos version also please
-1

This happened to me when I installed python3.8 from deadsnakes/ppa repository and created virtualenv using it.

Above solutions didn't work for me and after installing python3.8-dev it is installed successfully.

sudo apt install python3.8-dev

After that

python3.8 -m pip install mysqlclient==1.3.12

Comments

-2

I had the same problem and I fixed in a really stupid way. I just uninstalled python and installed it through the Microsoft Store.

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.