it-swarm.com.de

pip install mysqlclient gibt schwerwiegenden Fehler zurück C1083: Datei kann nicht geöffnet werden: 'mysql.h': Keine solche Datei oder Verzeichnis

Hier ist dieses Problem: Ich versuche, mysqlclient so zu installieren

C:\Users\amccommon349> pip install mysqlclient Sammeln von mysqlclient Verwenden von zwischengespeicherten https://files.pythonhosted.org/packages/ec/fd/83329b9d3e14f7344d1 Cb31f128e6dbba70c5975c9e57896815dbb1988ad/mysqlclient-1.3.13.tar.gz

Installierte Pakete installieren: mysqlclient

Ausführen von setup.py install für mysqlclient ... Fehler

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\programme\python\python36\lib\distutils\d ist.py:261: UserWarning: Unbekannte Verteilungsoption: '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

build_ext ausführen

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

Ich stellte sicher, dass ich über alle Dateien verfügte, die von Visual Studio-Build-Tools benötigt wurden. Ich lud den mysql-python-Connector herunter und aktualisierte meine Pip- und Setup-Tools. Ich bin ein absoluter Anfänger und würde mich über jede Anregung für die Behebung dieses Fehlers freuen.

6
Aaron McCommon

Sie können inoffizielle Windows-Binärdateien für Ihre Python-Version herunterladen, indem Sie https://www.lfd.uci.edu/~gohlke/pythonlibs/#mysqlclient.Then installieren und es mit pip installieren. Auf diese Weise können Sie den umständlichen Umgang mit Visual Studio Build Tools vermeiden.

Laden Sie einfach die Datei mysqlclient.whl herunter, die für Sie am geeignetsten ist. Ich denke in deinem Fall wird es so sein 

mysqlclient-1.3.13-cp36-cp36m-win_AMD64.whl

und Renn 

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

Nun, wahrscheinlich ist dies einer der dümmsten Fehler, die ich je gesehen habe.
Ich habe Python 3.7.3 32bit zusammen mit dem neuesten pip3 und ich habe Räder auf meinem Python installiert .... und bin über diesen DUMMEN Fehler gestolpert ....
Wahrscheinlich ist meine Situation etwas anders, aber Sie können es beheben, indem Sie sich den Fehler genau ansehen. Zuerst scheint etwas zu fehlen, und Sie geben Ihnen die Schuld, Windows, 32/64-Bit, und die Liste geht auf und weiter..
Machen Sie einen Schritt zurück ... Machen Sie einfach einen Schritt zurück und lesen Sie einfach die böse rote Fehlermeldung .... lese es wirklich gut.
In meinem Fall war es

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.

Haben Sie es gut gelesen? ... Ich gehe davon aus, dass Sie alles haben ... die Build-Tools, den MySQL Connector C 6.1 ... Sie haben es sogar in Programme (x86) verschoben ... also, was ist los ... ?? ...
Schauen Sie sich das jetzt genauer an

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" -

Ich bin mir ziemlich sicher, dass du es gesehen hast ... NOCH NO?

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

Mariadb
Nun, es kann nicht dümmer sein als das ... das Installationsprogramm sucht nach Mariadb enthält und später libs Gehen Sie einfach zur Mariadb-Site und laden Sie das herunter MariaDB C/C++ Connector und installieren Sie es ...
Nun, es ist noch nicht vorbei. Wechseln Sie zu C:\Programme (x86)\MySQL\MySQL Connector C 6.1\include und erstellen Sie den Ordner mariadb ... und kopieren Sie den Inhalt aus der Installation des mariaDb-Connectors include Ordner
wieder gehen Sie nicht weiter ... gehen Sie zu C:\Programme (x86)\MySQL\MySQL Connector C 6.1\lib und wiederholen Sie den Drill für den Ordner lib
also solltest du haben

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

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

Nun drücke den pip3 install mysqlclient
und genießen Sie die Installation ohne Probleme ... das Ende

Successfully installed mysqlclient-1.4.2.post1
2
John

Dieser Fehler tritt auf, wenn Sie versuchen, mysqlclient für python32 in 64-Bit-Umgebungen zu installieren. Deinstallieren Sie Python und installieren Sie die 64-Bit-Version erneut. Dann wird pip install mysqlclient fehlerfrei ausgeführt.

Ich habe dasselbe für ein Django Projekt versucht. Ich habe versucht mit:
pip install mysql-python
was mir den folgenden Fehler gab: 'mysql.h': No such file or directory.
Nachdem ich mit reuqirements.txt herumgespielt hatte, gab es einen weiteren Fehler

  Downloading https://files.pythonhosted.org/packages/a5/e9/51b544da85a36a68debe7a7091f068d802fc515a3a202652828c73453cad/MySQL-python-1.2.5.Zip (108kB) 
    Complete output from command python setup.py Egg_info: 
    Traceback (most recent call last): 
      File "<string>", line 1, in <module> 
      File "/tmp/pip-install-43_6cfva/MySQL-python/setup.py", line 13, in <module> 
        from setup_posix import get_config 
      File "/tmp/pip-install-43_6cfva/MySQL-python/setup_posix.py", line 2, in <module> 
        from ConfigParser import SafeConfigParser 
    ModuleNotFoundError: No module named 'ConfigParser' 

Endlich funktionierte dies für mich: pip install mysql-connector
import mysql.connector

0

Dies ist ein Problem mit der 64-Bit-Version von Python unter Windows 10. Im Folgenden wurde das Problem für mich behoben.

  1. Installieren Sie die 32-Bit-Version von Python für Windows (derzeit Version 3.7.1).
  2. Installieren Sie die Visual Studio Build-Tools https://visualstudio.Microsoft.com/downloads/#build-tools-for-visual-studio-2017 Für C++
  3. Installieren Sie den 32-Bit-MySQL-Connector Version 6.1.11 von https://downloads.mysql.com/archives/c-c/

Danach konnte ich mysqlclient mit pip install mysqlclint installieren. 

Hoffentlich wird jemand eine bessere Lösung finden, die kein Downgrade auf 32 Bit erfordert, da dies keine gute Lösung ist, es funktioniert einfach. Ich habe einen Weg gefunden, das mysql-Problem zu umgehen, stieß jedoch beim Versuch, Kanäle zu installieren, erneut auf das Problem. Es scheint, dass Python 64-Bit 32-Bit-Bibliotheken anstelle von 64-Bit-Bibliotheken unter Windows sucht. Bisher hat diese Lösung alle meine Python-Build-Probleme unter Windows gelöst.

0
Ralph Ritoch

Es wurde viel Zeit verschwendet, um diesen Fehler zu beheben. Ich fand die Lösung, die zumindest für mich funktionierte.

Als ich versuchte, MYSQL Client zu installieren

pip install mysqlclient

1. Fehler

MySQLdb/_mysql.c (29): Schwerwiegender Fehler C1083: Include-Datei kann nicht geöffnet werden: 'mysql.h': Keine solche Datei oder kein solches Verzeichnis


Und auch versucht, Django Channels zu installieren

pip install -U channels

2. Fehler

fehler: Microsoft Visual C++ 14.0 ist erforderlich. Holen Sie es sich mit "Microsoft Visual C++ Build Tools": https://visualstudio.Microsoft.com/downloads/

Laden Sie die Build-Tools herunter: Microsoft Build Tools

Stapelüberlauf: Installation/Auswahl der benötigten Build Tools

Installierte Build-Tools. (Happy Coding)


@ Ralph Ritoch Lösung funktionierte für mich und auch für andere, die einen MySQL-Client-Fehler bekamen.

Aber ich habe auch Django Channels installiert, also habe ich die folgenden Schritte ausgeführt

Befolgen Sie diese Schritte

  1. Windows 10 64 Bit
  2. Python 64 Bit 3.7.
  3. mysql-connector-c-6.1.11-winx64
  4. Build tools

Ich habe auch Django Channels 2.2. installiert und erhalte keinerlei Fehler.

Successfully installed mysqlclient


(Hinweis)

MySQL-Connector bereits im x86-Verzeichnis installiert

Kopieren Sie das Verzeichnis c:\Programme\MySQL\MySQL Connector C 6.0.2\nach c:\Programme (x86)\MySQL\MySQL Connector C 6.1 \

Also habe ich das Verzeichnis von MySQL Connector nicht geändert. (Sie können dies auch überprüfen)

Vielleicht für dich arbeiten!

Andere Stack-Lösung zum Ändern des Verzeichnisses


Mögliche Gründe

Warum wir Fehler bekommen.

  1. Python 32/64 Bit Version
  2. MySQL Connector 32/64 Bit Version
  3. Verzeichnisproblem
  4. Windows 32/64 Bit Version
  5. Build Tools nicht installiert (wenn Microsoft Visual C++ 14.0 benötigt wird)

Vielen Dank an alle, die ihre Lösung gepostet haben.

Ich hatte dieses Problem (genau derselbe Fehler) und habe alle oben genannten Lösungen ausprobiert, und keine davon funktionierte (zumindest für mich). Eigentlich wollte ich meine Haare über dieses Problem ziehen, bis ich die Lösung in einer sehr seltsamen Weise fand. einfache und dumme Weise !! .

Ich habe die folgenden Schritte ausgeführt, damit das Problem gelöst und das Leben wieder süß wurde.

Zuerst habe ich MySQL Connector/C von hier installiert.

Zweitens (nach Abschluss der Installation) kopierte ich MySQL Connector C 6.1 Ordner vonProgram files/MySQL IN Program files (x86)/MySQL

beachten Sie, dass Sie möglicherweise einen MySQL-Ordner erstellen müssen, wenn er nicht in Program files (x86) vorhanden ist (er ist für mich nicht vorhanden).

So einfach, dass es für mich funktioniert hat, scheint es für einige (oder alle) 64-Bit-Fenster, Pip oder mehr zu sein. Wahrscheinlich mysqlclient Setup-Skript durchsucht nur den Program files (x86)-Ordner nach einigen MySQL-Dateien (wie 'mysql.h') und doesn t Program files suchen und da in Program files (x86) nichts gefunden wird, wird der Fehler sehr stumm !!! ist es nicht 

0
Code_Worm