Python >> Tutoriel Python >  >> Python Tag >> MySQL

pip install mysqlclient renvoie l'erreur fatale C1083 :Impossible d'ouvrir le fichier :'mysql.h' :Aucun fichier ou répertoire de ce type

Vous pouvez télécharger des binaires Windows non officiels pour votre version de python en utilisant https://www.lfd.uci.edu/~gohlke/pythonlibs/#mysqlclient. Ensuite, installez-le en utilisant pip. De cette façon, vous serez en mesure d'éviter les tracas liés aux outils de création de Visual Studio.

Téléchargez simplement le fichier mysqlclient.whl qui vous convient le mieux. Je pense que dans ton cas ce sera

mysqlclient‑1.3.13‑cp36‑cp36m‑win_amd64.whl

et exécutez

pip install "path to the downloaded .whl file"

Cette erreur se produit lorsque vous essayez d'installer mysqlclient pour python32 dans des environnements 64 bits. Désinstallez python et réinstallez la version 64 bits. Ensuite, pip install mysqlclient s'exécutera sans erreur.


Eh bien, c'est probablement l'une des erreurs les plus stupides que j'ai jamais vues.
J'ai Python 3.7.3 32 bits avec le dernier pip3 et j'installais des roues sur mon Python .... et je suis tombé sur cette erreur STUPID ....
Ma situation est probablement un peu différente, mais vous pouvez la résoudre simplement en examinant attentivement l'erreur.
Prenez du recul...Reculez d'un pas et lisez simplement le message d'erreur rouge désagréable .... lisez-le très bien .
Dans mon cas, c'était

ERROR: Command errored out with exit status 1:
     command: 'c:\users\myUserName\appdata\local\programs\python\python37-32\python.exe' -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\\Users\\MASTER~1\\AppData\\Local\\Temp\\pip-install-z7x81g2q\\mysqlclient\\setup.py'"'"'; __file__='"'"'C:\\Users\\MASTER~1\\AppData\\Local\\Temp\\pip-install-z7x81g2q\\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\MASTER~1\AppData\Local\Temp\pip-record-z1mvci5v\install-record.txt' --single-version-externally-managed --compile
         cwd: C:\Users\MASTER~1\AppData\Local\Temp\pip-install-z7x81g2q\mysqlclient\
    Complete output (30 lines):
    running install
    running build
    running build_py
    creating build
    creating build\lib.win32-3.7
    creating build\lib.win32-3.7\MySQLdb
    copying MySQLdb\__init__.py -> build\lib.win32-3.7\MySQLdb
    copying MySQLdb\_exceptions.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
    running build_ext
    building 'MySQLdb._mysql' extension
    creating build\temp.win32-3.7
    creating build\temp.win32-3.7\Release
    creating build\temp.win32-3.7\Release\MySQLdb
    C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.21.27702\bin\HostX86\x86\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MT -Dversion_info=(1,4,2,'post',1) -D__version__=1.4.2.post1 "-IC:\Program Files (x86)\MySQL\MySQL Connector C 6.1\include\mariadb" -Ic:\users\MyUserName\appdata\local\programs\python\python37-32\include -Ic:\users\MyUserName\appdata\local\programs\python\python37-32\include "-IC:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.21.27702\include" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\shared" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\winrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\cppwinrt" /TcMySQLdb/_mysql.c /Fobuild\temp.win32-3.7\Release\MySQLdb/_mysql.obj /Zl /D_CRT_SECURE_NO_WARNINGS
    _mysql.c
    MySQLdb/_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\\2019\\BuildTools\\VC\\Tools\\MSVC\\14.21.27702\\bin\\HostX86\\x86\\cl.exe' failed with exit status 2
    ----------------------------------------
ERROR: Command errored out with exit status 1: 'c:\users\MyUserName\appdata\local\programs\python\python37-32\python.exe' -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\\Users\\MASTER~1\\AppData\\Local\\Temp\\pip-install-z7x81g2q\\mysqlclient\\setup.py'"'"'; __file__='"'"'C:\\Users\\MASTER~1\\AppData\\Local\\Temp\\pip-install-z7x81g2q\\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\MASTER~1\AppData\Local\Temp\pip-record-z1mvci5v\install-record.txt' --single-version-externally-managed --compile Check the logs for full command output.

L'avez-vous bien lu ?... je suppose que vous avez tout... les outils de construction, le connecteur MySQL C 6.1... vous l'avez même déplacé vers Program Files (x86)... alors qu'est-ce qui ne va pas... ?? ...
Maintenant, regardez de plus près

C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.21.27702\bin\HostX86\x86\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MT -Dversion_info=(1,4,2,'post',1) -D__version__=1.4.2.post1 "-IC:\Program Files (x86)\MySQL\MySQL Connector C 6.1\include\mariadb" -

Je suis à peu près sûr que vous l'avez vu... TOUJOURS NON ?.... laissez-moi le mettre en gras pour vous

"-IC:\Program Files (x86)\MySQL\MySQL Connector C 6.1\include\mariadb" -

mariadb
Eh bien, cela ne peut pas être plus stupide que cela ... le programme d'installation recherche mariadb inclut et versions ultérieures libs Il suffit d'aller sur le site mariadb et de télécharger le connecteur MariaDB C/C++ et de l'installer...
Eh bien, ce n'est pas fini. Allez dans C:\Program Files (x86)\MySQL\MySQL Connector C 6.1\include et créez le dossier mariadb... et copiez-collez le contenu de l'installation du connecteur mariaDb include dossier
encore n'allez pas loin... allez à C:\Program Files (x86)\MySQL\MySQL Connector C 6.1\lib et refaites le même exercice pour la lib dossier
donc vous devriez avoir

C:\Program Files (x86)\MySQL\MySQL Connector C 6.1\include\mariadb  

C:\Program Files (x86)\MySQL\MySQL Connector C 6.1\lib\mariadb  

Appuyez maintenant sur le pip3 install mysqlclient
et profitez de l'installation sans remords... la fin

Successfully installed mysqlclient-1.4.2.post1