"Kann nicht geöffnet werden Datei einschließen:" config-Win.h ": Keine solche Datei oder Verzeichnis", während MySQL-Python installiert wird

StackOverflow https://stackoverflow.com/questions/1972259

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?

War es hilfreich?

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:

  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. Laufen pip install mysql-python
  3. 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 in lib Verzeichnis, während der Installationsprogramm es erwartet in lib/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):

  1. DOWLOAD LOAD LOAD NEUTE MYSQL C CONNECTER http://dev.mysql.com/downloads/connector/c/ (Für mich war Windows (x86, 64-Bit), MSI-Installateur)
  2. Kopieren c:\Program Files\MySQL\MySQL Connector C 6.0.2\ Verzeichnis an c:\Program Files (x86)\MySQL\MySQL Connector C 6.1\
  3. Laufen pip install mysqlclient
  4. 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.2zu 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

  1. Laden Sie davon herunter

  2. 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.htmlFü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
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top