"Kann nicht geöffnet werden Datei einschließen:" config-Win.h ": Keine solche Datei oder Verzeichnis", während MySQL-Python installiert wird
-
21-09-2019 - |
Frage
Ich versuche, MySQL-Python in einem virtuellenv mit PIP unter Windows zu installieren. Zuerst bekam ich den gleichen Fehler hier gemeldet, Aber die Antwort dort hat auch für mich funktioniert. Jetzt bekomme ich diesen folgenden Fehler:
_mysql.c(34) : Fatal error C1083: Cannot open include file: 'config-win.h': No such file or directory
Wenn ich symlink (win7) zu meinem regulären (nicht der Virtualenv's) Pythons Site-Packages/MySQLDB-Dir habe ich bekomme
Error loading MySQLdb module: No module named _mysql
Ich bin hier eher ratlos. Irgendwelche Zeiger?
Lösung
Update für MySQL 5.5 und config-Win.h nicht sichtbares Problem
In 5.5 config-Win. hat sich tatsächlich zum Connector separate Ordner in Windows verschoben. dh stmth wie:
C: Programme mysql Connector C 6.0.2 include
Um das Problem zu überwinden, muss man nicht nur "Dev Bits" herunterladen (was die tatsächlich verbindet Verbinder) aber auch um mySQLDB zu ändern, um Skripte zu installieren, um den Ordner inklusive hinzuzufügen. Ich habe eine schnelle, schmutzige Lösung gemacht.
Site.cfg:
# Windows connector libs for MySQL.
connector = C:\Program Files\MySQL\Connector C 6.0.2
In setup_windows.py finden Sie die Zeile
include_dirs = [ os.path.join(mysql_root, r'include') ]:
und fügen Sie hinzu:
include_dirs = [ os.path.join(options['connector'], r'include') ]
Danach.
Hässlich, funktioniert aber, bis MySQLDB -Autoren das Verhalten ändern werden.
Fast vergessen zu erwähnen. Auf die gleiche Weise muss man einen ähnlichen zusätzlichen Eintrag für LIBs hinzufügen:
library_dirs = [ os.path.join(options['connector'], r'lib\opt') ]
dh dein setup_windows.py sieht ziemlich ähnlich aus:
...
library_dirs = [ os.path.join(mysql_root, r'lib\opt') ]
library_dirs = [ os.path.join(options['connector'], r'lib\opt') ]
libraries = [ 'kernel32', 'advapi32', 'wsock32', client ]
include_dirs = [ os.path.join(mysql_root, r'include') ]
include_dirs = [ os.path.join(options['connector'], r'include') ]
extra_compile_args = [ '/Zl' ]
...
Andere Tipps
Ich musste nur zu Oracle gehen und den MySQL -Anschluss C 6.0.2 herunterladen (Neuer funktioniert nicht!) und die typische Installation durchführen.
https://downloads.mysql.com/archives/cc/
Stellen Sie sicher
Sobald das erledigt war, ging ich in Pycharms und wählte das MySQL-Python> = 1.2.4-Paket zum Installieren aus, und es funktionierte großartig. Sie müssen keine Konfiguration oder ähnliches aktualisieren. Dies war die einfachste Version für mich, die ich durcharbeiten konnte.
Ich hoffe es hilft
Die akzeptierte Lösung scheint nicht mehr für neuere Versionen von MySQL-Python zu funktionieren. Der Installationsprogramm bietet keine a site.cfg
Datei zu bearbeiten.
Wenn Sie MySQL-Python installieren, wird es nach suchen C:\Program Files (x86)\MySQL\MySQL Connector C 6.0.2\include
. Wenn Sie eine 64-Bit-Installation von MySQL haben, können Sie einfach aufrufen:
mklink /d "C:\Program Files (x86)\MySQL\MySQL Connector C 6.0.2\include" "C:\Program Files\MySQL\MySQL Connector C 6.0.2\include"
- Laufen
pip install mysql-python
- Löschen Sie den in Schritt 1 erstellten symbolischen Link
Die akzeptierte Antwort ist veraltet. Einige der Vorschläge wurden bereits in das Paket aufgenommen, und ich bekam immer noch den Fehler über fehlende config-win.h & mysqlclient.lib.
Installieren MySQL-Connector-C-6.0.2-Win32.msi
Es gibt auch eine Zip -Datei für den ConencTor, aber das hat nicht funktioniert, weil
mysqlclient.lib
ist inlib
Verzeichnis, während der Installationsprogramm es erwartet inlib/opt
. Anstelle von Hacking -Site.cfg oder setup_windows.py erledigt der MSI den Job.PIP Installieren Sie MySQL-Python
PS Da ich MySQL nicht mehr benutze, kann meine Antwort auch veraltet sein.
Ich weiß, dass dieser Beitrag super alt ist, aber er kommt immer noch als der Top -Hit in Google, also werde ich dieses Problem weitere Informationen hinzufügen.
Ich hatte die gleichen Probleme wie OP, aber keine der vorgeschlagenen Antworten schien für mich zu funktionieren. Hauptsächlich, weil "config-win.h" im Ordner "Connector Installation" nirgendwo vorhanden war.
Ich verwendete den neuesten Stecker C 6.1.6, da das MySQL -Installateur dies vorgeschlagen wurde.
Dies scheint jedoch nicht durch das neueste MySQL-Python-Paket (1.2.5) unterstützt zu werden. Als ich versuchte, es zu installieren, konnte ich sehen, dass es explizit nach C -Anschluss 6.0.2 suchte.
"-IC:\Program Files (x86)\MySQL\MySQL Connector C 6.0.2\include"
Also durch Installation dieser Version von https://dev.mysql.com/downloads/file/?id=378015 Das Python -Paket wurde ohne Probleme installiert.
Die Antwort ist höchstwahrscheinlich, MySQL Developer Build und Auswahl der Option "C Headers libs" während der Konfiguration zu installieren. (Wie in diesem Eintrag berichtet: Erstellen von MySQLDB für Python unter Windows unter rationalpie.wordpress.com)
Eine vielleicht sogar bessere Lösung besteht darin, einen vorkompilierten Build zu installieren: http://www.technicalbard.com/files/mysql-python-1.2.2-py2.6.exe
Wenn PIP nicht "MySQLDB" installiert wird, kann eine Problemumgehung zuerst herunterladen und auf Ihrem Computer installieren
http://www.lfd.uci.edu/~gohlke/pythonlibs/#mysql-Python
Kopieren Sie dann alle Dateien und Verzeichnisse von MySQL* und _mysql* von Ihrem System -Python in Ihr Virtualenv Dir:
c:\Python27\Lib\site-packages
(oder einen ähnlichen Weg zu Ihrem System Python) zuc:\my_virtenv\Lib\site-packages
(Pfad zu Ihrem Virtualenv)
Wenn Sie noch das Problem haben, können Sie das Installationsprogramm aus herunterladen http://code.google.com/p/soemin/downloads/detail?name=mysql-python-1.2.3.win32-py2.7.exe
Ich hatte auch viel Kopfschmerzen mit MySQLDB.
Warum nicht den offiziellen MySQL Python -Anschluss verwenden?
easy_install mysql-connector-python
Oder Sie können es hier herunterladen:http://dev.mysql.com/downloads/connector/python/
Dokumentation:http://dev.mysql.com/doc/refman/5.5/en/connector-python.html
Die Installation von Entwicklungsbits für MySQL hat das los config-win.h
Fehler, den ich hatte und warf einen anderen. Failed to load and parse the manifest. The system cannot find the file specified.
Ich fand die Antwort auf mein Problem in diesem Beitrag: http://www.fuyun.org/2009/12/install-mysql-for-python-on-windows/.
Ich habe die Datei 'C: Python26 lib distutils msvc9compiler.py` in mein Virtualenv, die im obigen Link vorgeschlagene Bearbeitung gemacht und die Dinge funktionieren gut.
Einfachste Arbeitslösung:
Laden Sie die herunter MySQL -Anschluss C 6.0.2 Aus dem folgenden Link und installieren.
http://dev.mysql.com/downloads/connector/c/6.0.html#downloads
Kopieren Sie den Ordner "MySQL Connector C 6.0.2" aus "C: Programmdateien MySQL" in "C: Programme (x86) mysql".
Geben Sie dann ein
pip install MySQL-python
Es wird auf jeden Fall funktionieren.
In meinem Fall bestand mein Fix darin, den von MySQL-Connector-C-6.0.2-Win32.msi (verwiesenen Benutzername-Puffer in einem vorherigen Beitrag verwiesen) zu kopieren. C 6.0.2 und Erstellen eines neuen Pfades mit Programmdateien (x86) und das Einfügen des Inhalts dort, da die Installation nicht ordnungsgemäß zwischen 32-Bit- und 64-Bit-Maschinen überprüft wird.
Der neue Pfad lautet also C: Programme (x86) mysql mysql Connector C 6.0.2. Dies ist der Pfad, den der Installationsprogramm finden möchte, und habe die Dateien dort eingefügt, um dem Installateur zu helfen, die Dateien zu finden, was den Fehler zu fehlenden Konfigurationsunen verursachte.
Versuchen ActivePython,
pypm -E C:\myvirtualenv install mysql-python
Ich habe die Antwort von Bugagotti gefolgt, und es funktioniert nicht in meinen Fenstern (Win7 64 Bit, PY27 und MySQL Connector 6.1) für MySQL-Python-1.2.5, also habe ich einige sogar schmutzige Änderungen in Mysql-Python- 1.2.5:
Erstens die Site.cfg:
connector = C:\Program Files\MySQL\MySQL Connector C 6.1
Zweitens der _mysql.c:
#if defined(MS_WINDOWS)
#include <config-win.h>
#else
#include "my_config.h"
#endif
Zu:
#if 0 /*defined(MS_WINDOWS)*/
#include <config-win.h>
#else
#include "my_config.h"
#endif
Und mit diesen Änderungen wird das Problem config_win.h verschwinden, aber es gibt immer noch ein Link -Problem:
LINK : fatal error LNK1181: cannot open input file 'mysqlclient.lib'
Dafür habe ich die setup_windows.py geändert:
library_dirs = [ os.path.join(connector, r'lib\vs9') ] ## the original value was r'lib\opt'
Dann funktionierte es schließlich.
Ich folgte Mingcai Shens Methode.
Aber in meinem Fall habe ich den Stecker auf geändert auf
connector = C:\Program Files\MySQL\MySQL Connector.C 6.1
Und die Library_Dirs wird in geändert
library_dirs = [ os.path.join(connector, r'lib\vs10') ]
Weil ich keine habe vs9
Verzeichnis. Es funktioniert, aber Ich weiß nicht warum.
Ich habe VS2012 installiert, und das Lib -Verzeichnis des Steckers hat nur vs10
und vs11
, in welchem vs11
funktioniert nicht. Die von mir installierte vcforpyhton27.mis scheint zu unterstützen vs9
.
Wie auch immer, das funktioniert. Und wenn Sie es riskieren möchten, können Sie es versuchen.
Lösung, die für mich funktioniert hat Windows
: Installieren Sie beide beides 32
-bit und 64
-bitversionen der MySQL Connector/C 6.0.2. Offen Command Prompt
und Renn:
pip install mysql-python
Für mich löste der folgende Ansatz das Problem (Python 3.5.2; MySQLCLIENT 1.3.9):
- DOWLOAD LOAD LOAD NEUTE MYSQL C CONNECTER http://dev.mysql.com/downloads/connector/c/ (Für mich war Windows (x86, 64-Bit), MSI-Installateur)
- Kopieren
c:\Program Files\MySQL\MySQL Connector C 6.0.2\
Verzeichnis anc:\Program Files (x86)\MySQL\MySQL Connector C 6.1\
- Laufen
pip install mysqlclient
- Optional] Löschen
c:\Program Files (x86)\MySQL\MySQL Connector C 6.1\
Das Problem ist hier nur für X64 -Bit -Installationsbesitzer, da das Build -Skript versucht, den C -Connector in X86 -Programmdateien -Verzeichnis zu finden.
building '_mysql' extension
creating build\temp.win-amd64-2.7
creating build\temp.win-amd64-2.7\Release
C:\Users\TimHuang\AppData\Local\Programs\Common\Microsoft\Visual C++ for Python\9.0\VC\Bin\amd64\cl.exe /c /nologo /Ox /MD /W3 /GS- /DNDEBUG -Dversion_info=(1,2,5,'final',1) -D__version__=1.2.5 "-IC:\Program Files (x86)\MySQL\MySQL Connector C 6.0.2\include" -Ic:\python27\include -Ic:\python27\PC /Tc_mysql.c /Fobuild\temp.win-amd64-2.7\Release\_mysql.obj /Zl
_mysql.c
_mysql.c(42) : fatal error C1083: Cannot open include file: 'config-win.h': No such file or directory
Wenn Sie dies sehen, wenn Sie es versuchen pip install mysql-python
, Der einfachste Weg ist zu kopieren
C:\Program Files\MySQL\MySQL Connector C 6.0.2
zu C:\Program Files (x86)\MySQL\MySQL Connector C 6.0.2
Ich habe versucht, den symbolischen Link zu erstellen, aber Windows wirft mich immer wiederC:\WINDOWS\system32>mklink /d "C:\Program Files (x86)\MySQL\MySQL Connector C 6.0.2\include" "C:\Program Files\MySQL\MySQL Connector C 6.0.2\include"
The system cannot find the path specified.
Wenn Sie dies in einer virtuellen Umgebung tun, egal ob Sie Visual Studio oder auf andere Weise verwenden, versuchen Sie es miteasy_install MySQL-python
Laden Sie davon herunter
- Python 2.7: https://pypi.python.org/pypi/mysqlclient/1.3.9
- Python 3.6: https://pypi.python.org/pypi/mysqlclient
Installieren Sie diese WHL dann per PIP -Installationsprogramm. Verschiebung + mit der rechten Maustaste im heruntergeladenen Ordner und wählen Sie aus und wählen Sie
Open powershell here
. Dann mit dem Befehl installieren:pip install package_name.whl
Laden Sie die Version des Connectors von herunter https://dev.mysql.com/downloads/connector/c/6.0.html
Für meinen Fall hatte ich ein 64 -Bit -Stecker installiert und mein Python war 32 Bit. Daher musste ich MySQL von Programmdateien auf Programmdateien kopieren (86)
Schritte für Fenster10:
- Gehe zu
https://www.lfd.uci.edu/~gohlke/pythonlibs/#mysql-python
- Laden Sie die richtige Version gemäß Python -Version und Hardware -Spezifikationen herunter: für meinen Fall,
mysqlclient‑1.4.2‑cp37‑cp37m‑win32.whl
Arbeitet für Python3.7 und Intel CPU. - Während Ihre Umwelt noch aktiviert ist, gehen Sie zum Download -Ordner und laufen Sie aus
pip install mysqlclient-1.4.2-cp37-cp37m-win32.whl