28

I want to install MySqlclient on my windows system. I am Currently using Python 3.6. After going through the various post over Stackoverflow, I could Not find the correct way. This is what I have done so far:

1) Installation by using pip pip install mysqlclient. Error:

Microsoft Visual C++ 14.0 is required. Get it with "Microsoft Visual C++ Build Tools" http://landinghub.visualstudio.com/visual-cpp-build-tools

I already have Microsoft Visual C++ installed on my laptop. Some are saying you need 2015 edition.

2) Installation by using wheel file pip install mysqlclient-1.3.13-cp36-cp36m-win_amd64.whl. Error:

Requirement mysqlclient-1.3.13-cp36-cp36m-win_amd64.whl looks like a filename, but the file does not exist. mysqlclient-1.3.13-cp36-cp36m-win_amd64.whl is not a supported wheel on this platform.

2.1) Changing the whl file to different version pip install mysqlclient-1.3.13-cp36-cp36m-win32.whl. Error:

Could not install packages due to an EnvironmentError: [Errno 2] No such file or directory: 'C:\\Users\\Foxtrot\\Desktop\\finaltest\\mysqlclient-1.3.13-cp36-cp36m-win32.whl'

Other things that are done: updated setuptools, updated wheel.

Wtower
  • 18,848
  • 11
  • 103
  • 80
Damian
  • 325
  • 1
  • 3
  • 7

10 Answers10

44

Had the same problem, searched the web etc. Here this answer:

mysql-python install error: Cannot open include file 'config-win.h'

It has all the instructions. In short go to this site: https://www.lfd.uci.edu/~gohlke/pythonlibs/#mysqlclient:

At that website you will find
mysqlclient‑1.3.13‑cp36‑cp36m‑win32.whl
mysqlclient‑1.3.13‑cp36‑cp36m‑win_amd64.whl

Download the correct file for your platform.

Then use your downloaded wheels file with pip and you're done:

pip install c:\mysqlclient‑1.3.13‑cp36‑cp36m‑win_amd64.whl

The https://www.lfd.uci.edu/~gohlke/pythonlibs has lots of lots of compiled libraries to solve the problem of building them from source yourself. They even compile them for python 3.7 :)

Alternative Solution

You can also download Visual C++ Build Tools and then you should be able to install every (at least to my knowledge) version of mysqlclient with pip.

To do this go to this site: https://www.scivision.co/python-windows-visual-c++-14-required/ there you can find out which version of Build Tools you need and you can also find a link to download the installer. Be aware though Build Tools require more than 4GB of free disk space.

Temba
  • 370
  • 2
  • 14
CodeSamurai777
  • 3,285
  • 2
  • 24
  • 42
  • Such an easy fix. I would have spent hours spinning on getting mysqlclient installed. Thanks for finding / posting. – raider33 Jul 26 '18 at 01:49
  • I have the same problem but still, there's an error saying, " Requirement 'mysqlclient-1.3.13-cp37-cp37m-win_amd64.whl' looks like a filename, but the file does not exist mysqlclient-1.3.13-cp37-cp37m-win_amd64.whl is not a supported wheel on this platform." – Irene Jul 31 '18 at 13:02
  • 4
    There [are wheels available](https://pypi.org/project/mysqlclient/1.3.12/#files) for the previous release 1.3.12. You can install it with `pip install "mysqlclient==1.3.12"`. – Alasdair Aug 17 '18 at 13:11
  • The first solution seems to be taken care of by just doing: `python -m pip install mysqlclient` – Will Ward Jan 18 '19 at 05:05
  • I wish there was a way to pin this...this is required for django 2.2.6 > releases when using mysql -_- – hpca01 Oct 23 '19 at 16:55
  • Dunno why, on Windows 10 x64 & Python 3.8, it didn't work with the `win_amd64` version but worked with `win32` version... – Vincent Decaux Dec 21 '19 at 15:14
10

Tell pip not to use sources and use binary packages instead:

pip install --only-binary :all: mysqlclient

https://pip.pypa.io/en/stable/reference/pip_install/#install-only-binary

Taurai Benhura
  • 141
  • 1
  • 4
8

I can't find mysqlclient-1.3.13's whl file on PyPi. So you need to compile it from source. Unfortunately it's not easy. I'm not Windows guy, so I only can recommend guide like this

3sky
  • 830
  • 1
  • 7
  • 16
  • 18
    There [are wheels available](https://pypi.org/project/mysqlclient/1.3.12/#files) for the previous release 1.3.12. You can install it with `pip install "mysqlclient==1.3.12"`. – Alasdair Aug 17 '18 at 13:11
  • Why don't they have a wheel for the current version? – Robert Hickman Sep 17 '18 at 19:50
  • 2
    @RobertHickman [this comment from the mysqlclient maintainer](https://github.com/PyMySQL/mysqlclient-python/pull/250#issuecomment-401226755) says that supporting Windows is a lot of work. There are unofficial wheels for windows, see mrangry's answer. – Alasdair Nov 27 '18 at 14:33
7

I am using python3.7 on Windows 10 operating system. I had same issue and after a long research I had installed it successfully.

Install "Microsoft Visual C++ Build Tools" AND My OS is having 64 bit operating system but still then it need to install 32 bit version "mysqlclient‑1.4.2‑cp37‑cp37m‑win32.whl"

Download binary wheels from "https://www.lfd.uci.edu/~gohlke/pythonlibs/" and run command

pip install [path_to_downloaded_file] eg: C:\Users\Ds\mysqlclient-1.4.2-cp37-cp37m-win32.whl

use pipenv instead of pip if you are using virtual environment.

Dinesh Sharma
  • 89
  • 1
  • 3
6

The error means that the package has not yet been compiled for your versions of OS and Python. So pip tries to build it from the source for you.

There are two possible solutions.

  1. The first option is to install the most recent version of Microsoft Visual C++ Build Tools. Just go ahead and download it from the Microsoft website. Then pip should be able to compile the package.

  2. Another option is using an unofficial binary. As mentioned here, a resource proved to be useful is https://www.lfd.uci.edu/~gohlke/pythonlibs/#mysql-python . Just download the pre-compiled package and install it using

    pip install c:\path-to-a-pre-compiled-package

Ildar Akhmetov
  • 1,331
  • 13
  • 22
  • 1
    There [are wheels available](https://pypi.org/project/mysqlclient/1.3.12/#files) for the previous release 1.3.12. You can install it with `pip install "mysqlclient==1.3.12"`. – Alasdair Aug 17 '18 at 13:12
0

Had the same problem just day. Tried to install mysqlclient on a Windows Server R2.

[...]

Tl;dr

  1. "MySQL Connector C 6.1" was installed in the wrong directory: "C:\Program Files\MySQL" instead of "C:\Program Files (x86)\MySQL" where it should be for me.
    --> Copied "MySQL Connector C 6.1" to "C:\Program Files (x86)\MySQL" Directory.

  2. "C:\Users\MoBoo\AppData\Local\Temp" was Read-Only: Therefore pip couldn't compile files into Temp dir.
    --> Allow Write access to "C:\Users\MoBoo\AppData\Local\Temp" Directory.

MoBoo
  • 9
  • 1
0

Here is what worked for me. I uninstalled mysql and re-installed it.

pip uninstall mysqlclient

Then simply re-install, so it picked the current version "1.4.2.post1"

pip install mysqlclient

Which interestingly, works straightaway.

tormuto
  • 587
  • 5
  • 16
0

for this error, most of user's suggest to install vs build but there is an alternative which works perfectly in my case and is sure for you too. Download latest MySQL client from here mysqlclients

Here you can see many version but prefer to download the latest one which has 32 bit and 64-bit files. download theme and past the file on your projects root folder then run the same command but with the full file name of downloaded mysqlclient.

like: pip install mysqlclient‑1.4.6‑cp38‑cp38‑win32.whl

in my case, the file is this also if have already the XAMPP server then you can use its PHPMyAdmin with python. You just need to change on your roots setting.py file for this. Something like this

 DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'mydjango',
        'USER': 'root',
        'PASSWORD':'',
        'HOST':'localhost',
        'PORT':'3306',
    }
}

The port is the same which you see on xampp panel just before the start button of MySQL. After changing this you just again start your server by hitting this command

python manage.py runserver

If you didn't see any error then congratulations you successfully connected with MySQL database.

Enjoy...

heySushil
  • 493
  • 7
  • 13
0

The easiest way to solve this problem is to download the correct version of MySQL client that supports the python version installed on your system.

MYSQLclient download link: https://pypi.org/project/mysqlclient/#files

enter image description here

Check the python version installed in your PC: enter image description here

0

I was using Python version 3.7 and the same error was happening.

After trying all the possibilities, simply reinstalling the newest Python version (3.10.7 in my case) solved the issue.

Coddy
  • 549
  • 4
  • 18
Elmir
  • 23
  • 6
  • This does not really answer the question. If you have a different question, you can ask it by clicking [Ask Question](https://stackoverflow.com/questions/ask). To get notified when this question gets new answers, you can [follow this question](https://meta.stackexchange.com/q/345661). Once you have enough [reputation](https://stackoverflow.com/help/whats-reputation), you can also [add a bounty](https://stackoverflow.com/help/privileges/set-bounties) to draw more attention to this question. - [From Review](/review/late-answers/32723554) – inarighas Sep 20 '22 at 15:01
  • The problem was exactly what I was facing and the solution I wrote solved the issue. I do not see anything irrelevant point here. – Elmir Sep 21 '22 at 08:07