web-dev-qa-db-fra.com

pip install mysqlclient renvoie "erreur fatale C1083: impossible d'ouvrir le fichier: 'mysql.h': aucun fichier ou répertoire de ce type

Voici ce problème: J'essaye d'installer mysqlclient comme ça

C:\Users\amccommon349> pip installer mysqlclient Collecte de mysqlclient Utilisation de https://files.pythonhosted.org/packages/ec/fd/83329b9d3e14f7344d1 En cache./C.

Installation des paquets collectés: mysqlclient

Lancer setup.py install pour mysqlclient ... error

Complete output from command c:\users\amccommon349\appdata\local\programs\python\python36\python.exe -u -c "import setuptools, tokenize;__file__='C:\\Users\\AMCCOM~1\\AppData\\Local\\Temp\\pip-install-qcgo48hf\\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\AMCCOM~1\AppData\Local\Temp\pip-record-q4yoftj8\install-record.txt --single-version-externally-managed --compile:

c:\users\amccommon349\appdata\local\programmes\python\python36\lib\distutils\d ist.py:261: UserWarning: option de distribution inconnue: '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

en cours d'exécution build_ext

building '_mysql' extension
creating build\temp.win-AMD64-3.6
creating build\temp.win-AMD64-3.6\Release
C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Tools\MSVC\14.14.26428\bin\HostX86\x64\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\amccommon349\appdata\local\programs\python\python36\include -Ic:\users\amccommon349\appdata\local\programs\python\python36\include "-IC:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\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:\ProgramFiles (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.win-AMD64-3.6\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\\BuildTools\\VC\\Tools\\MSVC\\14.14.26428\\bin\\HostX86\\x64\\cl.exe' failed with exit status 2

Je me suis assuré d'avoir tous les fichiers nécessaires des outils de compilation de visual studios, j'ai téléchargé le connecteur mysql-python et mis à jour mes outils de pip et de configuration. Je suis un débutant et j'apprécierais tout commentaire sur la façon de corriger cette erreur.

6
Aaron McCommon

Vous pouvez télécharger des fichiers binaires Windows non officiels pour votre version python à l’aide de https://www.lfd.uci.edu/~gohlke/pythonlibs/#mysqlclient.Then installez-le à l’aide de pip De cette façon, vous éviterez les tracas liés aux outils de construction de Visual Studio.

Il suffit de télécharger le fichier mysqlclient.whl qui vous convient le mieux. Je pense que dans votre cas ce sera 

mysqlclient ‑ 1.3.13 ‑ cp36 ‑ cp36m ‑ win_AMD64.whl

et courir 

pip install "path to the downloaded .whl file"
10
Nipun Sampath

Cette erreur se produit lors de la tentative d'installation de mysqlclient pour python32 dans des environnements 64 bits . Désinstallez Python et réinstallez la version 64 bits. Ensuite, installer pip mysqlclient s’exécutera sans erreur.

Il s'agit d'un problème avec la version 64 bits de python sous Windows 10. Les problèmes suivants ont résolu le problème pour moi.

  1. Installer la version 32 bits de python pour Windows (actuellement la version 3.7.1)
  2. Installez les outils de construction de visual studio https://visualstudio.Microsoft.com/downloads/#build-tools-for-visual-studio-2017 Pour C++
  3. Installez le connecteur mysql 32 bits version 6.1.11 à partir de https://downloads.mysql.com/archives/c-c/

Après cela, j'ai pu installer mysqlclient avec pip install mysqlclint

Espérons que quelqu'un trouvera une meilleure solution ne nécessitant pas de rétrogradation à 32 bits car ce n'est pas une bonne solution, cela fonctionne. J'ai trouvé un moyen de contourner le problème de mysql, mais je l'ai encore rencontré en essayant d'installer des chaînes. Il semble que python 64 bits recherche des bibliothèques 32 bits au lieu de bibliothèques 64 bits sous Windows. Jusqu'à présent, cette solution a résolu tous mes problèmes de construction de python sous Windows.

0
Ralph Ritoch

J'avais ce problème (exactement la même erreur) et j'essayais toutes les solutions mentionnées ci-dessus, et aucune d'entre elles ne fonctionnait (du moins pour moi); en fait, j'étais sur le point de me tirer d'affaire jusqu'à ce que je trouve la solution très bizarre, manière simple et stupide !! .

J'ai suivi les étapes suivantes pour que le problème soit résolu et que la vie redevienne douce.

J'ai d'abord installé MySQL Connector/C depuis ici

Deuxièmement (une fois l'installation terminée), j'ai copié MySQL Connector C 6.1 dossier deProgram files/MySQL DANS Program files (x86)/MySQL

notez que vous devrez peut-être créer un dossier MySQL s'il n'existe pas dans Program files (x86) (il n'existait pas pour moi)

Aussi simple que cela, cela a fonctionné pour moi, il semble que le script d'installation Windows, pip ou plus probablement mysqlclient 64 (ou tous) 64 bits recherche uniquement le dossier Program files (x86) pour certains fichiers MySQL (tels que 'mysql.h') t chercher Program files et depuis ne trouve rien dans Program files (x86) soulève l’erreur très stupide !!! n'est ce pas 

0
Code_Worm