« Impossible d'ouvrir le fichier include: « config-win.h »: Aucun fichier ou répertoire » lors de l'installation mysql-python
-
21-09-2019 - |
Question
Je suis en train d'installer mysql-python dans un virtualenv en utilisant pip sur les fenêtres. Au début, je recevais la même erreur signalé , mais la réponse, il a travaillé pour moi aussi. Maintenant, je reçois cette erreur suivante:
_mysql.c(34) : Fatal error C1083: Cannot open include file: 'config-win.h': No such file or directory
Si je symlink (Win7) à mes réguliers (non pas de l'virtualenv) de python site-packages / dir MySQLdb-je obtenir
Error loading MySQLdb module: No module named _mysql
Je suis plutôt à une perte ici. Tous les pointeurs?
La solution
Mise à jour pour MySQL 5.5 et config-win.h pas question visible
Dans 5.5 win-config. a effectivement déplacé vers connecteur dossier séparé dans les fenêtres. à savoir smth comme:
C: \ Program Files \ MySQL \ Connecteur C 6.0.2 \ include
Pour surmonter l'un des problèmes ont besoin non seulement de télécharger « bits » dev (qui relie les symboles connecteur ), mais aussi de modifier mysqldb installer des scripts pour ajouter le dossier inclure. Je l'ai fait une solution sale rapide que cela.
site.cfg:
# Windows connector libs for MySQL.
connector = C:\Program Files\MySQL\Connector C 6.0.2
setup_windows.py recherchez la ligne
include_dirs = [ os.path.join(mysql_root, r'include') ]:
et d'ajouter:
include_dirs = [ os.path.join(options['connector'], r'include') ]
après.
laid, mais fonctionne jusqu'à ce que les auteurs de mysqldb va changer le comportement.
presque oublié de mentionner. De la même manière il faut ajouter une entrée supplémentaire similaire pour libs:
library_dirs = [ os.path.join(options['connector'], r'lib\opt') ]
i.e.. votre setup_windows.py ressemble beaucoup à:
...
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' ]
...
Autres conseils
Tout ce que je devais faire était d'aller vers oracle, et télécharger le connecteur MySQL C 6.0.2 ( plus récente ne fonctionne pas! ) et ne l'installation standard.
https://downloads.mysql.com/archives/cc/
Assurez-vous d'inclure tous les extras en option (binaries Extra) via l'installation personnalisée, sans eux, il n'a pas fonctionné pour le win64.msi
Une fois cela fait, je suis entré dans pycharms et choisi le paquet python MySQL> = 1.2.4 à installer, et il a très bien fonctionné. Pas besoin de mettre à jour une configuration ou quelque chose comme ça. Ce fut la version la plus simple pour moi de travailler à travers.
it helps
La solution retenue ne semble plus fonctionner pour les nouvelles versions de python-mysql. Le programme d'installation ne fournit plus un fichier site.cfg
à modifier.
Si vous installez mysql-python, il va chercher C:\Program Files (x86)\MySQL\MySQL Connector C 6.0.2\include
. Si vous avez une installation 64 bits de MySQL, vous pouvez simplement invoquer:
-
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"
- Exécuter
pip install mysql-python
- Supprimer le lien symbolique créé à l'étape 1
La réponse acceptée est obsolète. Certaines des suggestions ont déjà été intégrés dans le paquet, et j'étais encore obtenir l'erreur de manquer config-win.h et mysqlclient.lib.
-
mysql-connector-c-6.0.2 -win32.msi
Il y a un fichier zip pour le conenctor aussi, mais qui ne fonctionne pas parce que
mysqlclient.lib
est dans le répertoirelib
alors que le programme d'installation attend danslib/opt
. Au lieu de piratage site.cfg ou setup_windows.py, la msi fait le travail. -
pip installer mysql-python
P.S. Comme je ne l'utilise MySQL plus, ma réponse peut être à jour aussi bien.
Je sais que ce post est super vieux, mais il est encore à venir comme le coup dans Google, donc je vais ajouter un peu plus d'information à ce sujet.
J'avais les mêmes problèmes que OP mais aucune des réponses proposées ne semblait fonctionner pour moi. Principalement parce que « config-win.h » n'existait nulle part dans le connecteur dossier d'installation.
J'utilisais le dernier connecteur C 6.1.6 comme ce fut ce qui a été suggéré par le programme d'installation de MySQL.
Cela ne semble pas être pris en charge par le dernier paquet MySQL-python (1.2.5). Lorsque vous essayez de l'installer, je pouvais voir qu'il était à la recherche explicitement C Connecteur 6.0.2.
"-IC:\Program Files (x86)\MySQL\MySQL Connector C 6.0.2\include"
en installant cette version de https://dev.mysql.com/downloads / file /? id = 378015 le paquet python installé sans aucun problème.
Très probablement la réponse est d'installer MySQL Developer Construire et en sélectionnant l'option « en-têtes C \ libs » lors de la configuration. (Comme indiqué dans cette entrée: bâtiment MySQLdb pour Python sous Windows sur rationalpie.wordpress.com)
solution peut-être encore mieux est d'installer une version pré-compilée: http://www.technicalbard.com/files/MySQL-python-1.2.2.win32-py2.6.exe
Si pip ne parvient pas à installer « MySQLdb », une solution consiste à télécharger et l'installer sur votre machine d'abord de ce lien
http://www.lfd.uci.edu/~gohlke / pythonlibs / # python mysql-
puis copiez tous MySQL * et _mysql fichiers * et des répertoires de votre système Python à votre virtualenv dir:
c:\Python27\Lib\site-packages
(ou un chemin similaire à votre système Python) à
c:\my_virtenv\Lib\site-packages
(chemin de votre virtualenv)
Eh bien, si vous avez encore le problème, vous pouvez télécharger le programme d'installation http://code.google.com/p/soemin/downloads/detail?name=MySQL-python-1.2.3.win32-py2.7. exe
J'ai eu beaucoup de maux de tête avec MySQLdb aussi.
Pourquoi ne pas utiliser le MysQL officiel Python Connector?
easy_install mysql-connector-python
Vous pouvez le télécharger ici: http://dev.mysql.com/downloads/connector/python/
Documentation: http://dev.mysql.com/doc/refman/5.5 /en/connector-python.html
Installation bits de dev pour MySQL se sont débarrassés de l'erreur de config-win.h
j'avais, et jeté une autre. Failed to load and parse the manifest. The system cannot find the file specified.
J'ai trouvé la réponse à mon problème dans ce message: http://www.fuyun.org/2009/12/install-mysql-for-python-on-windows/ .
Je copié le fichier « C:. \ Python26 \ Lib \ distutils \ msvc9compiler.py` dans mon virtualenv, a fait le montage proposé dans le lien ci-dessus, et les choses fonctionnent très bien
Solution de travail Simplest:
Télécharger le MySQL Connecteur C 6.0.2 de lien ci-dessous et installer.
http://dev.mysql.com/downloads/connector /c/6.0.html#downloads
Après avoir installé le connecteur MySQL C 6.0.2, copiez le dossier "MySQL Connecteur C 6.0.2" de "C: \ Program Files \ MySQL" à "C: \ Program Files (x86) \ MySQL".
Ensuite, tapez
pip install MySQL-python
Il va certainement travailler.
Dans mon cas, ma solution copiait le dossier créé à partir mysql-connector-c-6.0.2-win32.msi (référencé à partir du tampon de nom d'utilisateur dans un post précédent), qui est situé au c: \ Program Files \ MySQL \ MySQL connecteur C 6.0.2 et la création d'un nouveau chemin avec Program Files (x86) et coller le contenu là-bas depuis l'installation ne vérifie pas correctement entre 32 bits et machines 64 bits.
Alors, le nouveau chemin est C: \ Program Files (x86) \ MySQL \ MySQL Connector C 6.0.2. Ceci est le chemin que l'installateur cherche à trouver, donc je les fichiers collé là pour aider le programme d'installation pour trouver les fichiers, ce qui était à l'origine de l'erreur de manquer config-win.h
pypm -E C:\myvirtualenv install mysql-python
Je l'ai fait suivre la réponse de Bugagotti, et il ne fonctionne pas dans mes fenêtres (Win7 64 bits, PY27 et ont connecteur mysql 6.1 installé) pour mysql-python-1.2.5, donc je fait quelques changements, même sale à l'intérieur mysql -python-1.2.5:
D'abord, le site.cfg:
connector = C:\Program Files\MySQL\MySQL Connector C 6.1
En second lieu, le _mysql.c:
#if defined(MS_WINDOWS)
#include <config-win.h>
#else
#include "my_config.h"
#endif
Pour:
#if 0 /*defined(MS_WINDOWS)*/
#include <config-win.h>
#else
#include "my_config.h"
#endif
Et avec ces changements, la question de config_win.h sera parti, mais il y a encore un problème de lien:
LINK : fatal error LNK1181: cannot open input file 'mysqlclient.lib'
Pour cela, j'ai changé le setup_windows.py:
library_dirs = [ os.path.join(connector, r'lib\vs9') ] ## the original value was r'lib\opt'
Ensuite, il a travaillé finalement.
J'ai suivi la méthode de Mingcai SHEN.
Mais dans mon cas, j'ai changé le connecteur à
connector = C:\Program Files\MySQL\MySQL Connector.C 6.1
Et les library_dirs est modifié à
library_dirs = [ os.path.join(connector, r'lib\vs10') ]
parce que je n'ai pas un répertoire vs9
. Il fonctionne, mais Je ne sais pas pourquoi .
je vs2012 installés, et le répertoire lib du connecteur a seulement vs10
et vs11
, dans lequel vs11
ne fonctionne pas. Le VCForPyhton27.mis j'ai installé semble soutenir vs9
.
Quoi qu'il en soit, cela fonctionne. Et si vous voulez prendre le risque, vous pouvez essayer.
Solution qui a fonctionné pour moi Windows
: Installer les versions bits de 32
64
bits et du MySQL Connector / C 6.0.2 . Ouvrez Command Prompt
et exécutez:
pip install mysql-python
Pour moi, l'approche suivante a résolu le problème (Python 3.5.2, 1.3.9 mysqlclient):
- Dowload dernier MySQL C Connecteur http://dev.mysql.com/downloads/connector / c / (pour moi était de Windows (x86, 64 bits), MSI Installer)
- Copier le répertoire de
c:\Program Files\MySQL\MySQL Connector C 6.0.2\
àc:\Program Files (x86)\MySQL\MySQL Connector C 6.1\
- Exécuter
pip install mysqlclient
- [facultatif] supprimer
c:\Program Files (x86)\MySQL\MySQL Connector C 6.1\
La question est ici que pour les propriétaires d'installation de bit x64, car le script de construction tente de localiser le connecteur C inclut dans le répertoire des fichiers de programme x86.
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
Si vous voyez quand vous essayez pip install mysql-python
, le plus simple est de copier
C:\Program Files\MySQL\MySQL Connector C 6.0.2
à C:\Program Files (x86)\MySQL\MySQL Connector C 6.0.2
J'ai essayé de créer le lien symbolique mais Windows ne cesse de me jeter
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.
Si vous faites cela dans un environnement virtuel si l'utilisation de Visual Studio ou autrement, essayez
easy_install MySQL-python
-
Télécharger de cette
- Python 2.7: https://pypi.python.org/pypi/mysqlclient/ 1.3.9
- Python 3.6: https://pypi.python.org/pypi/mysqlclient
-
Ensuite, installez cette WHL par l'installateur pip. Maj + clic droit dans le dossier téléchargé et choisissez
Open powershell here
. Installez ensuite en utilisant la commande:pip install package_name.whl
Téléchargez la version du connecteur de https://dev.mysql.com/downloads/connector/c/6.0.html
Pour mon cas, j'avais installé 64 bits du connecteur et mon python était 32 bits. Donc, je devais copier MySQL à partir des fichiers de programme dans Program Files (86)
Les étapes pour Window10:
- Aller à
https://www.lfd.uci.edu/~gohlke/pythonlibs/#mysql-python
- Télécharger la bonne version selon la version python et les spécifications matérielles:. Pour mon cas,
mysqlclient‑1.4.2‑cp37‑cp37m‑win32.whl
fonctionne pour python3.7 et CPU Intel - Bien que votre env est toujours activé, allez dans le dossier de téléchargement et exécuter
pip install mysqlclient-1.4.2-cp37-cp37m-win32.whl