it-swarm.com.de

"Include - Datei kann nicht geöffnet werden: 'config-win.h': Keine solche Datei oder Verzeichnis" während der Installation von mysql-python

Ich versuche, mysql-python in einem virtualenv mit pip on windows zu installieren. Zuerst bekam ich den gleichen Fehler hier berichtet , aber die Antwort dort hat auch für mich funktioniert. Nun erhalte ich folgende Fehlermeldung:

_mysql.c(34) : Fatal error C1083: Cannot open include file: 'config-win.h': No such file or directory

Wenn ich (Win7) auf mein reguläres Python (nicht auf die virtualenv) Site-Packages/MySQLdb verweise, bekomme ich 

Error loading MySQLdb module: No module named _mysql

Ich bin hier ziemlich ratlos. Irgendwelche Hinweise?

69
saturdayplace

Update für mysql 5.5 und config-win.h nicht sichtbares Problem

In 5.5 config-win. wurde tatsächlich in einen separaten Ordner des Connectors in Windows verschoben. d.h.

C:\Programme\MySQL\Connector C 6.0.2\include

Um das Problem zu überwinden, müssen Sie nicht nur "dev bits" (die eigentlich denconnector verbinden) herunterladen, sondern auch die mysqldb-Installationsskripts ändern, um den Include-Ordner hinzuzufügen. Ich habe eine schnelle schmutzige Lösung dafür 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üge hinzu:

include_dirs = [ os.path.join(options['connector'], r'include') ]

danach.

Hässlich, aber funktioniert, bis die Autoren von mysqldb das Verhalten ändern.


Fast vergessen zu erwähnen. Auf dieselbe Weise muss ein ähnlicher zusätzlicher Eintrag für libs hinzugefügt werden:

library_dirs = [ os.path.join(options['connector'], r'lib\opt') ]

ihre setup_windows.py sieht also ungefähr so ​​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' ]
...
16
Bugagotti

Alles, was ich tun musste, war zu Oracle zu gehen und den MySQL Connector C 6.0.2 (neuer funktioniert nicht!) Herunterzuladen und die typische Installation durchzuführen.

alter Link (Seite nicht gefunden)

http://dev.mysql.com/downloads/connector/c/6.0.html#downloads

Neuer Link

https://downloads.mysql.com/archives/c-c/

Stellen Sie sicher, dass Sie alle optionalen Extras (Extra Binaries) über die benutzerdefinierte Installation angeben, ohne dass diese für die win64.msi nicht funktioniert haben

Nachdem dies erledigt war, ging ich in pycharms und wählte das Paket MySQL-python> = 1.2.4 aus, das installiert werden sollte, 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

86
Kevin Mansel

Die akzeptierte Lösung scheint für neuere Versionen von mysql-python nicht mehr zu funktionieren. Das Installationsprogramm stellt keine site.cfg -Datei mehr zum Bearbeiten bereit.

Wenn Sie mysql-python installieren, wird nach C:\Program Files (x86)\MySQL\MySQL Connector C 6.0.2\include gesucht. Wenn Sie eine 64-Bit-Installation von MySQL haben, können Sie einfach Folgendes aufrufen:

  1. 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"
  2. pip install mysql-python ausführen
  3. Löschen Sie die in Schritt 1 erstellte symbolische Verknüpfung
25
Gili

Die akzeptierte Antwort ist veraltet. Einige der Vorschläge waren bereits im Paket enthalten, und es wurde immer noch der Fehler wegen fehlender config-win.h & mysqlclient.lib angezeigt.

  • Installiere 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 befindet sich im lib-Verzeichnis, während das Installationsprogramm .__ erwartet. es in lib/opt. Anstatt site.cfg oder setup_windows.py zu hacken, wird der msi erledigt die Arbeit.

  • pip install mysql-python

P.S. Da ich MySQL nicht mehr benutze, ist meine Antwort möglicherweise auch nicht mehr aktuell. 

15
user

Ich weiß, dass dieser Beitrag sehr alt ist, aber es wird immer noch der Top-Hit in Google, daher werde ich dieser Ausgabe 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 können Sie das Python-Paket problemlos installieren.

10
jimmy

Die Antwort ist höchstwahrscheinlich die Installation von MySQL Developer Build und die Auswahl der Option "C headers\libs" während der Konfiguration. (wie in diesem Eintrag berichtet: Erstellen von MySQLdb für Python unter Windows auf rationalpie.wordpress.com)

Eine noch bessere Lösung ist die Installation eines vorkompilierten Builds: http://www.technicalbard.com/files/MySQL-python-1.2.2.win32-py2.6.exe

7
chodorowicz

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 System-Python in Ihr Virtualenv-Verzeichnis:

c:\Python27\Lib\site-packages (oder ein ähnlicher Pfad zu Ihrem System-Python) zu c:\my_virtenv\Lib\site-packages (Pfad zu Ihrer virtualenv)

5
Dmitriy

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 herunterladen. 7.exe

4
Ethan

Ich hatte auch viele Kopfschmerzen mit MySQLdb.

Warum nicht den offiziellen MysQL Python Connector verwenden?

easy_install mysql-connector-python

Oder Sie können ihn hier herunterladen: http://dev.mysql.com/downloads/connector/python/

Dokumentation: http://dev.mysql.com/doc/refman/5.5/en/connector-python.html

4

Einfachste Arbeitslösung:

Laden Sie den Link MySQL Connector C 6.0.2von unten 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".

Dann tippen Sie

pip install MySQL-python

Es wird definitiv funktionieren.

3
Gil Baggio

Durch die Installation von dev-Bits für mysql wurde der config-win.h-Fehler, den ich hatte, beseitigt und ein anderer geworfen. Failed to load and parse the manifest. The system cannot find the file specified. Ich habe in diesem Beitrag die Antwort auf mein Problem 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 virtualenv kopiert, die Bearbeitung im obigen Link vorgeschlagen und alles funktioniert gut.

3
saturdayplace

In meinem Fall bestand mein Fix darin, den Ordner zu kopieren, der aus mysql-connector-c-6.0.2-win32.msi erstellt wurde (auf den der Benutzername-Puffer in einem früheren Beitrag verwiesen wurde). Er befindet sich unter c:\Programme\MySQL\MySQL Connector C 6.0.2 und Erstellen eines neuen Pfads mit Program Files (x86) und Einfügen des Inhalts dort, da die Installation zwischen 32-Bit- und 64-Bit-Computern nicht ordnungsgemäß geprüft wird. 

Der neue Pfad lautet also C:\Programme (x86)\MySQL\MySQL Connector C 6.0.2. Dies ist der Pfad, den das Installationsprogramm suchen soll. Ich fügte die Dateien dort ein, um dem Installationsprogramm zu helfen, die Dateien zu finden, was zu dem Fehler über das Fehlen von config-win.h führte

2
Ryan

Lösung, die bei Windows für mich funktioniert hat: Installieren Sie sowohl die 32- als auch die 64- Bit-Version von MySQL Connector/C 6.0.2 . Öffnen Sie Command Prompt und führen Sie Folgendes aus:

pip install mysql-python
1
raul

Versuchen Sie ActivePython ,

pypm -E C:\myvirtualenv install mysql-python
1

Ich folgte der Methode von Mingcai SHEN.

Aber in meinem Fall habe ich den Connector auf geändert

connector = C:\Program Files\MySQL\MySQL Connector.C 6.1

Und das 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 und vs11, in denen vs11 nicht funktioniert. Das von mir installierte VCForPyhton27.mis scheint vs9 zu unterstützen.

Wie auch immer, das funktioniert. Und wenn Sie es riskieren wollen, können Sie es versuchen.

1
zijuexiansheng
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 von pip install mysql-python sehen, ist das Kopieren am einfachsten 

C:\Program Files\MySQL\MySQL Connector C 6.0.2zu C:\Program Files (x86)\MySQL\MySQL Connector C 6.0.2

Ich habe versucht, den symbolischen Link zu erstellen, aber Windows wirft mich ständig weiter 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.

1
timbuntu2

Ich habe die Antwort von Bugagotti verfolgt, und es funktioniert nicht in meinen Fenstern (Win7 64 Bit, py27 und mit installiertem Mysql-Connector 6.1) für mysql-python-1.2.5. 1.2.5:

Zuerst die site.cfg:

connector = C:\Program Files\MySQL\MySQL Connector C 6.1

Zweitens 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

Mit diesen Änderungen ist das Problem mit config_win.h weg, 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 hat es endlich funktioniert.

1
Mingcai SHEN

Für mich hat der folgende Ansatz das Problem gelöst (Python 3.5.2; mysqlclient 1.3.9):

  1. Den neuesten MySQL C Connector herunterladen http://dev.mysql.com/downloads/connector/c/ (für mich war Windows (x86, 64-bit), MSI-Installationsprogramm)
  2. c:\Program Files\MySQL\MySQL Connector C 6.0.2\-Verzeichnis nach c:\Program Files (x86)\MySQL\MySQL Connector C 6.1\ kopieren
  3. pip install mysqlclient ausführen
  4. [optional] löschen c:\Program Files (x86)\MySQL\MySQL Connector C 6.1\

Das Problem hier betrifft nur Besitzer von x64-Bit-Installationen, da Build-Script versucht, C-Connector-Include-Dateien im x86-Programmdateiverzeichnis zu finden.

1
Dagaz

Laden Sie die Connector-Version von https://dev.mysql.com/downloads/connector/c/6.0.html.__ herunter. Für meinen Fall hatte ich 64-Bit-Connector installiert und mein Python war 32 Bit. Also musste ich MySQL von Programmdateien in Programmdateien kopieren (86)

0
ishwar rimal

Schritte für Window10:

  • Gehe zu https://www.lfd.uci.edu/~gohlke/pythonlibs/#mysql-python
  • Laden Sie die richtige Version gemäß der Python-Version und den Hardwarespezifikationen herunter: In meinem Fall funktioniert mysqlclient‑1.4.2‑cp37‑cp37m‑win32.whl für Python3.7 und Intel-CPU.
  • Während dein env noch aktiviert ist, gehe in den Download-Ordner und starte pip install mysqlclient-1.4.2-cp37-cp37m-win32.whl
0
David P
  1. Laden Sie hier herunter

  2. Dann installieren Sie dieses Whl by Pip-Installationsprogramm. Klicken Sie bei gedrückter Umschalttaste in den Ordner "Download" und wählen Sie "Open powershell here". Dann mit folgendem Befehl installieren: pip install package_name.whl

0
Jacky Pham

Wenn Sie dies in einer virtuellen Umgebung tun, egal ob Sie Visual Studio oder anders verwenden, versuchen Sie es mit easy_install MySQL-python 

0
Saher Ahwal