Ich versuche, mysql-python in einer virtuellen Umgebung mit pip unter Windows zu installieren. Zuerst wurde der gleiche Fehler hier gemeldet , aber die Antwort dort funktionierte auch für mich. Jetzt erhalte ich folgenden Fehler:
_mysql.c(34) : Fatal error C1083: Cannot open include file: 'config-win.h': No such file or directory
Wenn ich einen Symlink (Win7) zu den Site-Paketen / MySQLdb-Verzeichnissen meines regulären (nicht des virtualenv) Pythons mache, bekomme ich
Error loading MySQLdb module: No module named _mysql
Ich bin hier ziemlich ratlos. Irgendwelche Hinweise?
python
windows
virtualenv
pip
mysql-python
Samstag Ort
quelle
quelle
Antworten:
Update für MySQL 5.5 und config-win.h nicht sichtbar Problem
In 5.5 config-win. wurde tatsächlich in den separaten Connector-Ordner in Windows verschoben. dh etw wie:
C: \ Programme \ MySQL \ Connector C 6.0.2 \ include
Um das Problem zu lösen, müssen nicht nur "Dev Bits" (die den Connector tatsächlich verbinden ) heruntergeladen werden, sondern auch mysqldb-Installationsskripte geändert werden, um den Include-Ordner hinzuzufügen. Ich habe so eine schnelle schmutzige Lösung gemacht.
site.cfg:
# Windows connector libs for MySQL. connector = C:\Program Files\MySQL\Connector C 6.0.2
Suchen Sie in setup_windows.py die Zeile
include_dirs = [ os.path.join(mysql_root, r'include') ]:
und hinzufügen:
include_dirs = [ os.path.join(options['connector'], r'include') ]
Danach.
Hässlich, funktioniert aber so lange, bis mysqldb-Autoren das Verhalten ändern.
Fast vergessen zu erwähnen. Auf die gleiche Weise muss ein ähnlicher zusätzlicher Eintrag für libs hinzugefügt werden:
library_dirs = [ os.path.join(options['connector'], r'lib\opt') ]
dh Ihre setup_windows.py sieht ziemlich ähnlich aus wie:
... 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' ] ...
quelle
MySQL Connector C 6.1
hat nicht die erforderliche Datei.MySQL Connector C 6.0.2
hat es. Sie müssen also eine alte Version auf der MySQL-Website auswählen ...Alles, was ich tun musste, war zu Oracle zu gehen und den MySQL Connector C 6.0.2 herunterzuladen ( neuer funktioniert nicht! ) Und die typische Installation durchzuführen.
https://downloads.mysql.com/archives/cc/
Stellen Sie sicher, dass alle optionalen Extras (zusätzliche Binärdateien) über die benutzerdefinierte Installation enthalten sind. Ohne diese Extras funktionierte dies für win64.msi nicht
Sobald dies erledigt war, ging ich in Pycharms und wählte das zu installierende MySQL-Python> = 1.2.4-Paket aus, und es funktionierte großartig. Sie müssen keine Konfiguration oder ähnliches aktualisieren. Dies war die einfachste Version, die ich durcharbeiten konnte.
Ich hoffe es hilft
quelle
Die akzeptierte Lösung scheint für neuere Versionen von MySQL-Python nicht mehr zu funktionieren. Das Installationsprogramm stellt keine
site.cfg
zu bearbeitende Datei mehr zur Verfügung.Wenn Sie MySQL-Python installieren, wird es 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 Folgendes 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"
pip install mysql-python
quelle
lib
zusätzlich zuminclude
Ordner einen symbolischen Link zum Ordner erstellen .Die akzeptierte Antwort ist veraltet. Einige der Vorschläge waren bereits im Paket enthalten, und ich erhielt immer noch die Fehlermeldung, dass config-win.h & mysqlclient.lib fehlen.
Installieren Sie mysql-connector-c-6.0.2-win32.msi
pip installiere mysql-python
PS Da ich MySQL nicht mehr benutze, ist meine Antwort möglicherweise auch veraltet.
quelle
pip install mysql-python
und es funktioniert. ;-)Ich weiß, dass dieser Beitrag sehr alt ist, aber er wird immer noch als Top-Hit in Google angezeigt, daher werde ich diesem 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" nirgendwo im Connector-Installationsordner vorhanden war.
Ich habe den neuesten Connector C 6.1.6 verwendet, da dies vom MySQL-Installationsprogramm vorgeschlagen wurde.
Dies scheint jedoch vom neuesten MySQL-Python-Paket (1.2.5) nicht unterstützt zu werden. Beim Versuch, es zu installieren, konnte ich feststellen, dass explizit nach C Connector 6.0.2 gesucht wurde.
"-IC:\Program Files (x86)\MySQL\MySQL Connector C 6.0.2\include"
Durch die Installation dieser Version von https://dev.mysql.com/downloads/file/?id=378015 wurde das Python-Paket problemlos installiert.
quelle
Höchstwahrscheinlich besteht die Antwort darin, MySQL Developer Build zu installieren und während der Konfiguration die Option "C headers \ libs" auszuwählen. (wie in diesem Eintrag berichtet: Erstellen von MySQLdb für Python unter Windows auf rationalpie.wordpress.com)
Vielleicht ist eine noch bessere Lösung die Installation eines vorkompilierten Builds: http://www.technicalbard.com/files/MySQL-python-1.2.2.win32-py2.6.exe
quelle
Wenn pip "MySQLdb" nicht installiert, können Sie es zunächst über diesen Link herunterladen und auf Ihrem Computer installieren
http://www.lfd.uci.edu/~gohlke/pythonlibs/#mysql-python
Kopieren Sie dann alle MySQL * - und _mysql * -Dateien und -Verzeichnisse von Ihrem Python-System in Ihr Virtualenv-Verzeichnis:
c:\Python27\Lib\site-packages
(oder ähnlicher Pfad zu Ihrem System Python) bisc:\my_virtenv\Lib\site-packages
(Pfad zu Ihrer virtuellen Umgebung)quelle
Wenn das Problem weiterhin besteht, können Sie das Installationsprogramm von http://code.google.com/p/soemin/downloads/detail?name=MySQL-python-1.2.3.win32-py2.7 herunterladen . exe
quelle
Ich hatte auch große Kopfschmerzen mit MySQLdb.
Warum nicht den offiziellen MysQL Python Connector verwenden?
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
quelle
mysqlconnector
API zu verwenden :engine = create_engine('mysql+mysqlconnector://scott:tiger@localhost/foo')
Durch die Installation von Dev-Bits für MySQL wurde der
config-win.h
Fehler, den ich hatte, beseitigt und ein weiterer Fehler ausgelöst .Failed to load and parse the manifest. The system cannot find the file specified.
Die Antwort auf mein Problem habe ich in diesem Beitrag gefunden: http://www.fuyun.org/2009/12/install-mysql-for-python-on-windows/ .Ich habe die Datei 'C: \ Python26 \ Lib \ distutils \ msvc9compiler.py` in meine virtuelle Umgebung kopiert, die im obigen Link vorgeschlagene Bearbeitung vorgenommen und alles funktioniert einwandfrei.
quelle
Einfachste Arbeitslösung:
Laden Sie den MySQL Connector C 6.0.2 über den folgenden Link herunter und installieren Sie ihn.
http://dev.mysql.com/downloads/connector/c/6.0.html#downloads
Kopieren Sie nach der Installation von MySQL Connector C 6.0.2 den Ordner "MySQL Connector C 6.0.2" von "C: \ Programme \ MySQL" nach "C: \ Programme (x86) \ MySQL".
Geben Sie dann ein
Es wird definitiv funktionieren.
quelle
In meinem Fall kopierte mein Fix den Ordner, der aus mysql-connector-c-6.0.2-win32.msi (in einem früheren Beitrag aus dem Benutzernamenpuffer referenziert) erstellt wurde und sich unter c: \ Programme \ MySQL \ MySQL Connector befindet C 6.0.2 und Erstellen eines neuen Pfads mit Programmdateien (x86) und Einfügen des Inhalts dort, da die Installation zwischen 32-Bit- und 64-Bit-Computern nicht ordnungsgemäß überprüft.
Der neue Pfad lautet also C: \ Programme (x86) \ MySQL \ MySQL Connector C 6.0.2. Dies ist der Pfad, den das Installationsprogramm suchen möchte. Daher habe ich die Dateien dort eingefügt, um dem Installationsprogramm das Auffinden der Dateien zu erleichtern. Dies hat den Fehler verursacht, dass config-win.h fehlt
quelle
Versuchen Sie ActivePython ,
quelle
Ich habe die Antwort von Bugagotti befolgt und es funktioniert nicht in meinen Fenstern (Win7 64 Bit, Py27 und MySQL Connector 6.1 installiert) für MySQL-Python-1.2.5, also habe ich einige sogar schmutzige Änderungen in MySQL-Python-vorgenommen. 1.2.5:
Zunächst die site.cfg:
connector = C:\Program Files\MySQL\MySQL Connector C 6.1
Zweitens ist die _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 behoben, aber es gibt immer noch ein Linkproblem:
LINK : fatal error LNK1181: cannot open input file 'mysqlclient.lib'
Dafür habe ich die Datei setup_windows.py geändert:
library_dirs = [ os.path.join(connector, r'lib\vs9') ] ## the original value was r'lib\opt'
Dann hat es endlich geklappt.
quelle
Ich folgte der Methode von Mingcai SHEN.
Aber in meinem Fall habe ich den Stecker auf geändert
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 kein
vs9
Verzeichnis habe. Es funktioniert, aber ich weiß nicht warum .Ich habe vs2012 installiert und das lib-Verzeichnis des Connectors hat nur
vs10
undvs11
, in demvs11
es nicht funktioniert. Die von mir installierte VCForPyhton27.mis scheint zu unterstützenvs9
.Wie auch immer, das funktioniert. Und wenn Sie es riskieren wollen, können Sie es versuchen.
quelle
Lösung, an der ich gearbeitet habe
Windows
: Installieren Sie sowohl die32
-bit- als auch die64
-bit-Version von MySQL Connector / C 6.0.2 . ÖffnenCommand Prompt
und ausführen:quelle
Für mich löste der folgende Ansatz das Problem (Python 3.5.2; mysqlclient 1.3.9):
c:\Program Files\MySQL\MySQL Connector C 6.0.2\
Verzeichnis kopieren nachc:\Program Files (x86)\MySQL\MySQL Connector C 6.1\
pip install mysqlclient
c:\Program Files (x86)\MySQL\MySQL Connector C 6.1\
Das Problem tritt hier nur bei Besitzern von x64-Bit-Installationen auf, da das Build-Skript versucht, die C-Connector-Includes im Verzeichnis der x86-Programmdateien zu finden.
quelle
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 beim Versuch sehen
pip install mysql-python
, ist das Kopieren am einfachstenC:\Program Files\MySQL\MySQL Connector C 6.0.2
zuC:\Program Files (x86)\MySQL\MySQL Connector C 6.0.2
Ich habe versucht, den symbolischen Link zu erstellen, aber Windows wirft mich immer wieder
C:\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.
quelle
Schritte für Window10:
https://www.lfd.uci.edu/~gohlke/pythonlibs/#mysql-python
mysqlclient‑1.4.2‑cp37‑cp37m‑win32.whl
für Python3.7 und Intel-CPU.pip install mysqlclient-1.4.2-cp37-cp37m-win32.whl
quelle
Wenn Sie dies in einer virtuellen Umgebung tun, unabhängig davon, ob Sie Visual Studio verwenden oder nicht, versuchen Sie es
easy_install MySQL-python
quelle
Hier herunterladen
Dann installieren Sie diese Whl von Pip Installer. Umschalt + Rechtsklick in den heruntergeladenen Ordner und wählen Sie
Open powershell here
. Dann installieren Sie mit dem Befehl:pip install package_name.whl
quelle
Laden Sie die Version von Connector von herunter.
https://dev.mysql.com/downloads/connector/c/6.0.html
Für meinen Fall hatte ich 64-Bit-Connector installiert und mein Python war 32-Bit. Also musste ich MySQL aus Programmdateien in Programmdateien kopieren (86)quelle