J'essaye d'installer mysql-python dans un virtualenv en utilisant pip sur Windows. Au début, je recevais la même erreur rapporté ici , mais la réponse a fonctionné pour moi aussi. Maintenant, j'obtiens cette erreur suivante:
_mysql.c(34) : Fatal error C1083: Cannot open include file: 'config-win.h': No such file or directory
Si je crée un lien symbolique (Win7) vers mon répertoire site-packages/MySQLdb de python habituel (pas celui de virtualenv),
Error loading MySQLdb module: No module named _mysql
Je suis plutôt perdu ici. Des pointeurs?
Mise à jour pour mysql 5.5 et config-win.h problème non visible
Dans 5.5 config-win. a en fait déplacé vers Connector un dossier distinct dans Windows. c'est-à-dire comme:
C:\Program Files\MySQL\Connector C 6.0.2\include
Pour résoudre ce problème, il faut non seulement télécharger "dev bits" (qui connecte réellement le connector), mais également modifier les scripts d'installation de mysqldb pour ajouter le dossier include. J'ai fait une solution rapide sale comme ça.
site.cfg:
# Windows connector libs for MySQL.
connector = C:\Program Files\MySQL\Connector C 6.0.2
dans setup_windows.py localisez la ligne
include_dirs = [ os.path.join(mysql_root, r'include') ]:
et ajouter:
include_dirs = [ os.path.join(options['connector'], r'include') ]
après ça.
Ugly mais fonctionne jusqu'à ce que les auteurs de mysqldb changent le comportement.
J'ai presque oublié de mentionner. De la même manière, il faut ajouter une entrée supplémentaire similaire pour les bibliothèques:
library_dirs = [ os.path.join(options['connector'], r'lib\opt') ]
c'est-à-dire que votre setup_windows.py ressemble à ceci:
...
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' ]
...
Tout ce que je devais faire était d'aller chez Oracle, télécharger le connecteur MySQL C 6.0.2 (le plus récent ne fonctionne pas!) Et effectuer l'installation typique.
ancien lien (page non trouvée)
http://dev.mysql.com/downloads/connector/c/6.0.html#downloads
nouveau lien
https://downloads.mysql.com/archives/c-c/
Assurez-vous d’inclure tous les extras optionnels (binaires supplémentaires) via l’installation personnalisée. Sans eux, cela ne fonctionnait pas pour win64.msi.
Une fois cela fait, je suis allé dans pycharms et j'ai choisi le paquet MySQL-python> = 1.2.4 à installer, et cela a très bien fonctionné. Pas besoin de mettre à jour une configuration ou quelque chose comme ça. C'était la version la plus simple pour moi.
J'espère que ça aide
La solution acceptée ne semble plus fonctionner pour les nouvelles versions de mysql-python. Le programme d'installation ne fournit plus de fichier site.cfg
à modifier.
Si vous installez mysql-python, il cherchera C:\Program Files (x86)\MySQL\MySQL Connector C 6.0.2\include
. Si vous avez une installation 64 bits de MySQL, vous pouvez simplement appeler:
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
La réponse acceptée est obsolète. Certaines des suggestions ont déjà été incorporées dans le paquet, et le message d'erreur relatif à l'absence de config-win.h et de mysqlclient.lib me faisait toujours défaut.
Installer mysql-connector-c-6.0.2-win32.msi
Il y a aussi un fichier Zip pour le générateur, mais cela n'a pas fonctionné car
mysqlclient.lib
est dans le répertoirelib
alors que le programme d'installation attend il enlib/opt
. Au lieu de pirater site.cfg ou setup_windows.py, le fichier MSI fait le travail.
pip installer mysql-python
P.S. Puisque je n’utilise plus MySQL, ma réponse est peut-être aussi dépassée.
Je sais que ce message est très ancien, mais il continue à figurer parmi les titres les plus consultés de Google. Je vais donc ajouter quelques informations supplémentaires à ce problème.
J'avais les mêmes problèmes que OP mais aucune des réponses suggérées ne semblait fonctionner pour moi. Principalement parce que "config-win.h" n'existait nulle part dans le dossier d'installation du connecteur.
J'utilisais le dernier connecteur C 6.1.6 car c'était ce que l'installateur de MySQL avait suggéré.
Cela ne semble cependant pas être supporté par le dernier paquetage MySQL-python (1.2.5). En essayant de l'installer, j'ai pu constater qu'il cherchait explicitement C Connector 6.0.2.
"-IC:\Program Files (x86)\MySQL\MySQL Connector C 6.0.2\include"
Donc, en installant cette version à partir de https://dev.mysql.com/downloads/file/?id=378015 le paquet python est installé sans problème.
La solution consiste probablement à installer MySQL Developer Build et à sélectionner l'option "En-têtes C\libs" lors de la configuration. (comme indiqué dans cette entrée: Création de MySQLdb pour Python sous Windows sur rationalpie.wordpress.com)
Une solution encore meilleure consiste peut-être à installer un build précompilé: http://www.technicalbard.com/files/MySQL-python-1.2.2.win32-py2.6.exe
Si pip ne parvient pas à installer "MySQLdb", une solution consiste à le télécharger et à l'installer d'abord sur votre ordinateur à partir de ce lien
http://www.lfd.uci.edu/~gohlke/pythonlibs/#mysql-python
puis copiez tous les fichiers et répertoires MySQL * et _mysql * de votre système Python dans votre répertoire Virtualenv:
c:\Python27\Lib\site-packages
(ou un chemin similaire à votre système Python) à c:\my_virtenv\Lib\site-packages
(chemin de votre virtualenv)
Si vous rencontrez toujours ce problème, vous pouvez télécharger le programme d'installation à partir de http://code.google.com/p/soemin/downloads/detail?name=MySQL-python-1.2.3.win32-py2. 7.exe
MySQLdb me causait également beaucoup de maux de tête.
Pourquoi ne pas utiliser le connecteur MysQL Python officiel?
easy_install mysql-connector-python
Ou vous pouvez le télécharger ici: http://dev.mysql.com/downloads/connector/python/
Documentation: http://dev.mysql.com/doc/refman/5.5/fr/connector-python.html
La solution de travail la plus simple:
Téléchargez le lien MySQL Connector C 6.0.2 ci-dessous et installez-le.
http://dev.mysql.com/downloads/connector/c/6.0.html#downloads
Après avoir installé MySQL Connector C 6.0.2, copiez le dossier "MySQL Connector C 6.0.2" de "C:\Program Files\MySQL" dans "C:\Program Files (x86)\MySQL".
Puis tapez
pip install MySQL-python
Cela fonctionnera certainement.
L'installation de dev bits pour mysql s'est débarrassé de l'erreur config-win.h
que je rencontrais et en a 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 cet article: http://www.fuyun.org/2009/12/install-mysql-for-python-on-windows/ .
J'ai copié le fichier 'C:\Python26\Lib\distutils\msvc9compiler.py` dans mon fichier virtualenv, j'ai fait la modification suggérée dans le lien ci-dessus, et tout se passe bien.
Dans mon cas, mon correctif consistait à copier le dossier créé à partir de mysql-connector-c-6.0.2-win32.msi (référencé à partir du tampon du nom d'utilisateur dans un message précédent), situé à l'emplacement c:\Program Files\MySQL\MySQL Connector C 6.0.2 et créer un nouveau chemin avec Program Files (x86) et y coller le contenu car l’installation ne vérifie pas correctement les ordinateurs 32 bits et 64 bits.
Le nouveau chemin d'accès est donc C:\Program Files (x86)\MySQL\Connecteur MySQL C 6.0.2. Il s’agit du chemin recherché par le programme d’installation. J’ai donc collé les fichiers à cet endroit pour aider le programme d’installation à trouver les fichiers, ce qui était à l’origine de l’erreur concernant la perte de config-win.h.
Solution qui a fonctionné pour moi sur Windows
: Installez les versions 32
-bit et 64
-bit du MySQL Connector/C 6.0.2 . Ouvrez Command Prompt
et exécutez:
pip install mysql-python
Essayez ActivePython ,
pypm -E C:\myvirtualenv install mysql-python
J'ai suivi la méthode de Mingcai SHEN.
Mais dans mon cas, j'ai changé le connecteur en
connector = C:\Program Files\MySQL\MySQL Connector.C 6.1
Et le paramètre library_dirs est remplacé par
library_dirs = [ os.path.join(connector, r'lib\vs10') ]
parce que je n'ai pas de répertoire vs9
. Cela fonctionne, mais je ne sais pas pourquoi .
J'ai installé vs2012 et le répertoire lib du connecteur ne contient que vs10
et vs11
, dans lequel vs11
ne fonctionne pas. Le VCForPyhton27.mis que j'ai installé semble prendre en charge vs9
.
Quoi qu'il en soit, cela fonctionne. Et si vous voulez risquer cela, vous pouvez essayer.
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 ceci lorsque vous essayez pip install mysql-python
, le moyen le plus simple est de copier
C:\Program Files\MySQL\MySQL Connector C 6.0.2
to C:\Program Files (x86)\MySQL\MySQL Connector C 6.0.2
J'ai essayé de créer le lien symbolique mais Windows n'arrête pas de me lancer 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.
J'ai suivi la réponse de Bugagotti, et cela ne fonctionne pas dans mes fenêtres (Win7 64 bits, py27 et le connecteur mysql 6.1 est installé) pour mysql-python-1.2.5, j'ai donc fait des changements même sales dans mysql-python- 1.2.5:
Tout d'abord, le site.cfg:
connector = C:\Program Files\MySQL\MySQL Connector C 6.1
Deuxièmement, le _mysql.c:
#if defined(MS_WINDOWS)
#include <config-win.h>
#else
#include "my_config.h"
#endif
À:
#if 0 /*defined(MS_WINDOWS)*/
#include <config-win.h>
#else
#include "my_config.h"
#endif
Et avec ces changements, le problème de config_win.h aura disparu, mais il reste un problème de lien:
LINK : fatal error LNK1181: cannot open input file 'mysqlclient.lib'
Pour cela, j'ai changé le fichier setup_windows.py:
library_dirs = [ os.path.join(connector, r'lib\vs9') ] ## the original value was r'lib\opt'
Puis cela a fonctionné finalement.
Pour moi, l'approche suivante a résolu le problème (Python 3.5.2; mysqlclient 1.3.9):
c:\Program Files\MySQL\MySQL Connector C 6.0.2\
dans c:\Program Files (x86)\MySQL\MySQL Connector C 6.1\
pip install mysqlclient
c:\Program Files (x86)\MySQL\MySQL Connector C 6.1\
Le problème ici concerne uniquement les propriétaires d’installation x64 bits, car le script de construction tente de localiser le connecteur C inclus dans le répertoire des fichiers de programme x86.
Téléchargez la version de Connector depuis https://dev.mysql.com/downloads/connector/c/6.0.html
Dans mon cas, j'avais installé un connecteur 64 bits et mon python était en 32 bits. Je devais donc copier MySQL à partir de fichiers de programme vers Program Files (86)
Étapes pour Window10:
https://www.lfd.uci.edu/~gohlke/pythonlibs/#mysql-python
mysqlclient‑1.4.2‑cp37‑cp37m‑win32.whl
fonctionne pour python3.7 et les processeurs Intel.pip install mysqlclient-1.4.2-cp37-cp37m-win32.whl
Télécharger à partir de cette
Puis installez ce whl par installateur pip. Maj + clic droit dans le dossier Téléchargé et choisissez Open powershell here
. Puis installez en utilisant la commande: pip install package_name.whl
Si vous effectuez cette opération dans un environnement virtuel, que vous utilisiez Visual Studio ou non, essayez easy_install MySQL-python