Solución:
Puede descargar archivos binarios de Windows no oficiales para su versión de Python usando https://www.lfd.uci.edu/~gohlke/pythonlibs/#mysqlclient. Luego instálelo usando pip. De esta manera, podrá evitar la molestia de tener que lidiar con las herramientas de compilación de Visual Studio.
Simplemente descargue el archivo mysqlclient.whl que más le corresponda. Creo que en tu caso será
mysqlclient ‑ 1.3.13 ‑ cp36 ‑ cp36m ‑ win_amd64.whl
y correr
pip install "path to the downloaded .whl file"
Este error ocurre al intentar instalar mysqlclient para python32 en entornos de 64 bits. Desinstale Python y vuelva a instalar la versión de 64 bits. Luego, pip install mysqlclient se ejecutará sin errores.
Bueno, probablemente, este es uno de los errores más estúpidos que he presenciado.
Tengo Python 3.7.3 32bit junto con el último pip3 y estaba instalando ruedas en mi Python … y me encontré con este error ESTÚPIDO …
Probablemente mi situación sea un poco diferente, pero puedes resolverlo con solo mirar detenidamente el error … al principio parece que falta algo y comienzas a culparte, Windows, 32 / 64bit y la lista sigue y sigue …
Da un paso atrás…solo da un paso atrás y lee el desagradable mensaje de error rojo…. léelo muy bien.
En mi caso fue
ERROR: Command errored out with exit status 1:
command: 'c:usersmyUserNameappdatalocalprogramspythonpython37-32python.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('"'"'rn'"'"', '"'"'n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record 'C:UsersMASTER~1AppDataLocalTemppip-record-z1mvci5vinstall-record.txt' --single-version-externally-managed --compile
cwd: C:UsersMASTER~1AppDataLocalTemppip-install-z7x81g2qmysqlclient
Complete output (30 lines):
running install
running build
running build_py
creating build
creating buildlib.win32-3.7
creating buildlib.win32-3.7MySQLdb
copying MySQLdb__init__.py -> buildlib.win32-3.7MySQLdb
copying MySQLdb_exceptions.py -> buildlib.win32-3.7MySQLdb
copying MySQLdbcompat.py -> buildlib.win32-3.7MySQLdb
copying MySQLdbconnections.py -> buildlib.win32-3.7MySQLdb
copying MySQLdbconverters.py -> buildlib.win32-3.7MySQLdb
copying MySQLdbcursors.py -> buildlib.win32-3.7MySQLdb
copying MySQLdbrelease.py -> buildlib.win32-3.7MySQLdb
copying MySQLdbtimes.py -> buildlib.win32-3.7MySQLdb
creating buildlib.win32-3.7MySQLdbconstants
copying MySQLdbconstants__init__.py -> buildlib.win32-3.7MySQLdbconstants
copying MySQLdbconstantsCLIENT.py -> buildlib.win32-3.7MySQLdbconstants
copying MySQLdbconstantsCR.py -> buildlib.win32-3.7MySQLdbconstants
copying MySQLdbconstantsER.py -> buildlib.win32-3.7MySQLdbconstants
copying MySQLdbconstantsFIELD_TYPE.py -> buildlib.win32-3.7MySQLdbconstants
copying MySQLdbconstantsFLAG.py -> buildlib.win32-3.7MySQLdbconstants
running build_ext
building 'MySQLdb._mysql' extension
creating buildtemp.win32-3.7
creating buildtemp.win32-3.7Release
creating buildtemp.win32-3.7ReleaseMySQLdb
C:Program Files (x86)Microsoft Visual Studio2019BuildToolsVCToolsMSVC14.21.27702binHostX86x86cl.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)MySQLMySQL Connector C 6.1includemariadb" -Ic:usersMyUserNameappdatalocalprogramspythonpython37-32include -Ic:usersMyUserNameappdatalocalprogramspythonpython37-32include "-IC:Program Files (x86)Microsoft Visual Studio2019BuildToolsVCToolsMSVC14.21.27702include" "-IC:Program Files (x86)Windows Kits10include10.0.17763.0ucrt" "-IC:Program Files (x86)Windows Kits10include10.0.17763.0shared" "-IC:Program Files (x86)Windows Kits10include10.0.17763.0um" "-IC:Program Files (x86)Windows Kits10include10.0.17763.0winrt" "-IC:Program Files (x86)Windows Kits10include10.0.17763.0cppwinrt" /TcMySQLdb/_mysql.c /Fobuildtemp.win32-3.7ReleaseMySQLdb/_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:usersMyUserNameappdatalocalprogramspythonpython37-32python.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('"'"'rn'"'"', '"'"'n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record 'C:UsersMASTER~1AppDataLocalTemppip-record-z1mvci5vinstall-record.txt' --single-version-externally-managed --compile Check the logs for full command output.
¿Lo has leído bien? … supongo que lo tienes todo … las herramientas de compilación, el conector MySQL C 6.1 … incluso lo moviste a Archivos de programa (x86) … así que qué mal … ?? …
Ahora mira más de cerca
C:Program Files (x86)Microsoft Visual Studio2019BuildToolsVCToolsMSVC14.21.27702binHostX86x86cl.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)MySQLMySQL Connector C 6.1includemariadb" -
Estoy bastante seguro de que lo vio … ¿TODAVÍA NO? … déjeme ponerlo en negrita para usted
"-IC:Program Files (x86)MySQLMySQL Connector C 6.1includemariadb" -
mariadb
Bueno, no puede ser más estúpido que esto … el instalador busca mariadb incluye y después libs
Simplemente vaya al sitio de mariadb y descargue el conector MariaDB C / C ++ e instálelo …
Bueno, no ha terminado … Ir a C: Archivos de programa (x86) MySQL MySQL Connector C 6.1 incluir y crear la carpeta mariadb … y copiar y pegar el contenido de la instalación del conector mariaDb incluir carpeta
de nuevo no te vayas … ve a C: Archivos de programa (x86) MySQL MySQL Connector C 6.1 lib y vuelve a hacer el mismo ejercicio para el lib carpeta
entonces deberías tener
C:Program Files (x86)MySQLMySQL Connector C 6.1includemariadb
C:Program Files (x86)MySQLMySQL Connector C 6.1libmariadb
Ahora golpea el pip3 install mysqlclient
y disfruta de la instalación sin un fastidio … al final
Successfully installed mysqlclient-1.4.2.post1