« Impossible d'ouvrir le fichier include: « config-win.h »: Aucun fichier ou répertoire » lors de l'installation mysql-python

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

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?

Était-ce utile?

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:

  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. Exécuter pip install mysql-python
  3. 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épertoire lib alors que le programme d'installation attend   dans lib/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

ActivePython ,

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):

  1. Dowload dernier MySQL C Connecteur http://dev.mysql.com/downloads/connector / c / (pour moi était de Windows (x86, 64 bits), MSI Installer)
  2. 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\
  3. Exécuter pip install mysqlclient
  4. [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

  1. Télécharger de cette

  2. 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
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top