“No se puede abrir el archivo de inclusión: ‘config-win.h’: no ​​existe tal archivo o directorio” al instalar mysql-python

Estoy tratando de instalar mysql-python en un virtualenv usando pip en windows. Al principio, estaba recibiendo el mismo error reportado aquí , pero la respuesta allí funcionó para mí también. Ahora estoy recibiendo este siguiente error:

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

Si hago un enlace simbólico (Win7) a mi sitio regular de python (no el virtualenv), mis paquetes / MySQLdb dir me dan

 Error loading MySQLdb module: No module named _mysql 

Estoy bastante perdido aquí. Cualquier punteros?

Actualización para mysql 5.5 y config-win.h problema no visible

En 5.5 config-win. se ha movido realmente a la carpeta separada del conector en Windows. es decir, algo como

C: \ Archivos de progtwig \ MySQL \ Connector C 6.0.2 \ include

Para superar el problema, uno no solo necesita descargar “dev bits” (que en realidad conecta el conector ) sino también modificar los scripts de instalación de mysqldb para agregar la carpeta de inclusión. He hecho una solución sucia rápida como eso.

site.cfg:

 # Windows connector libs for MySQL. connector = C:\Program Files\MySQL\Connector C 6.0.2 

en setup_windows.py encuentra la línea

 include_dirs = [ os.path.join(mysql_root, r'include') ]: 

y añadir:

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

después de.

Feo pero funciona hasta que los autores de mysqldb cambien el comportamiento.


Casi me olvido de mencionar. De la misma manera, uno necesita agregar una entrada adicional similar para las bibliotecas:

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

es decir, su setup_windows.py se parece bastante a:

 ... 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' ] ... 

Todo lo que tenía que hacer era ir a Oracle, descargar MySQL Connector C 6.0.2 (¡el más nuevo no funciona! ) Y hacer la instalación típica.

https://downloads.mysql.com/archives/cc/

Asegúrese de incluir todos los extras opcionales (Extra Binaries) a través de la instalación personalizada, sin estos no funcionó para win64.msi

Una vez hecho esto, entré en pycharms y seleccioné el paquete MySQL-python> = 1.2.4 para instalar, y funcionó muy bien. No hay necesidad de actualizar ninguna configuración ni nada de eso. Esta fue la versión más simple para mí para trabajar.

Espero eso ayude

La solución aceptada ya no parece funcionar para las versiones más nuevas de mysql-python. El instalador ya no proporciona un archivo site.cfg para editar.

Si está instalando mysql-python, buscará C:\Program Files (x86)\MySQL\MySQL Connector C 6.0.2\include . Si tiene una instalación de MySQL de 64 bits, simplemente puede invocar:

  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. Ejecutar pip install mysql-python
  3. Eliminar el enlace simbólico creado en el paso 1

La respuesta aceptada está desactualizada. Algunas de las sugerencias ya estaban incorporadas en el paquete, y aún recibía el error de faltar config-win.h & mysqlclient.lib.

  • Instale mysql-connector-c-6.0.2-win32.msi

    También hay un archivo zip para el controlador, pero eso no funcionó porque mysqlclient.lib está en el directorio lib , mientras que el instalador lo espera en lib/opt . En lugar de hackear site.cfg o setup_windows.py, el msi hace el trabajo.

  • pip instalar mysql-python

PS Como ya no uso MySQL, mi respuesta también puede estar desactualizada.

Sé que esta publicación es muy antigua, pero sigue apareciendo como el principal éxito en Google, así que agregaré más información a este problema.

Estaba teniendo los mismos problemas que OP, pero ninguna de las respuestas sugeridas parecía funcionar para mí. Principalmente porque “config-win.h” no existía en ninguna parte de la carpeta de instalación del conector.

Estaba usando la última versión del Conector C 6.1.6, ya que eso era lo que me sugirió el instalador de MySQL.

Sin embargo, esto no parece ser compatible con el último paquete MySQL-python (1.2.5). Al intentar instalarlo, pude ver que estaba buscando explícitamente C Connector 6.0.2.

 "-IC:\Program Files (x86)\MySQL\MySQL Connector C 6.0.2\include" 

Entonces, instalando esta versión desde https://dev.mysql.com/downloads/file/?id=378015 el paquete de Python instalado sin ningún problema.

Probablemente la respuesta sea instalar MySQL Developer Build y seleccionar la opción “C headers \ libs” durante la configuración. (como se informó en esta entrada: Creación de MySQLdb para Python en Windows en rationalpie.wordpress.com)

Tal vez una mejor solución sea instalar una comstackción precomstackda: http://www.technicalbard.com/files/MySQL-python-1.2.2.win32-py2.6.exe

Si pip no puede instalar “MySQLdb”, una solución es descargarlo e instalarlo primero en su máquina desde este enlace.

http://www.lfd.uci.edu/~gohlke/pythonlibs/#mysql-python

luego copie todos los archivos y directorios MySQL * y _mysql * de su sistema Python a su directorio Virtualenv:

c:\Python27\Lib\site-packages (o ruta similar a su sistema Python) a c:\my_virtenv\Lib\site-packages (ruta a su virtualenv)

Bueno, si aún tiene el problema, puede descargar el instalador desde http://code.google.com/p/soemin/downloads/detail?name=MySQL-python-1.2.3.win32-py2.7. exe

También tuve muchos dolores de cabeza con MySQLdb.

¿Por qué no usar el conector MysQL Python oficial?

 easy_install mysql-connector-python 

O puede descargarlo desde aquí: http://dev.mysql.com/downloads/connector/python/

Documentación: http://dev.mysql.com/doc/refman/5.5/en/connector-python.html

La instalación de los bits de desarrollo para mysql config-win.h error config-win.h que estaba teniendo y lanzó otro. Failed to load and parse the manifest. The system cannot find the file specified. Encontré la respuesta a mi problema en esta publicación: http://www.fuyun.org/2009/12/install-mysql-for-python-on-windows/ .

Copié el archivo ‘C: \ Python26 \ Lib \ distutils \ msvc9compiler.py’ en mi virtualenv, hice la edición sugerida en el enlace anterior, y las cosas están funcionando bien.

La solución de trabajo más simple:

Descargue el MySQL Connector C 6.0.2 desde el siguiente enlace e instálelo.

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

Después de instalar MySQL Connector C 6.0.2, copie la carpeta “MySQL Connector C 6.0.2” de “C: \ Archivos de progtwig \ MySQL” a “C: \ Archivos de progtwig (x86) \ MySQL”.

Entonces escribe

 pip install MySQL-python 

Definitivamente funcionará.

En mi caso, mi solución fue copiar la carpeta creada desde mysql-connector-c-6.0.2-win32.msi (a la que se hace referencia desde el búfer de nombre de usuario en una publicación anterior), que se encuentra en c: \ Archivos de progtwig \ MySQL \ MySQL Connector C 6.0.2 y crear una nueva ruta con Archivos de progtwig (x86) y pegar el contenido allí ya que la instalación no se está verificando correctamente entre máquinas de 32 y 64 bits.

Por lo tanto, la nueva ruta es C: \ Archivos de progtwig (x86) \ MySQL \ MySQL Connector C 6.0.2. Esta es la ruta que el instalador está buscando encontrar, así que pegué los archivos allí para ayudar al instalador a encontrar los archivos, lo que estaba causando el error de falta config-win.h

Prueba ActivePython ,

 pypm -EC:\myvirtualenv install mysql-python 

Seguí la respuesta de Bugagotti, y no funciona en mis ventanas (Win7 64 bit, py27 y tengo el conector mysql 6.1 instalado) para mysql-python-1.2.5, así que hice algunos cambios sucios dentro de mysql-python- 1.2.5:

Primero, el sitio.cfg:

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

En segundo lugar, el _mysql.c:

 #if defined(MS_WINDOWS) #include  #else #include "my_config.h" #endif 

A:

 #if 0 /*defined(MS_WINDOWS)*/ #include  #else #include "my_config.h" #endif 

Y con estos cambios, el problema config_win.h desaparecerá, pero todavía hay un problema de enlace:

 LINK : fatal error LNK1181: cannot open input file 'mysqlclient.lib' 

Para esto, cambié el setup_windows.py:

 library_dirs = [ os.path.join(connector, r'lib\vs9') ] ## the original value was r'lib\opt' 

Entonces funcionó finalmente.

Seguí el método de Mingcai SHEN.

Pero en mi caso, cambié el conector a

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

Y la library_dirs se cambia a

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

porque no tengo un directorio vs9 Funciona, pero no sé por qué .

He instalado vs2012 y el directorio lib del conector solo tiene vs10 y vs11 , en los que vs11 no funciona. El VCForPyhton27.mis que instalé parece ser compatible con vs9 .

De todos modos, esto funciona. Y si quieres arriesgarte, puedes intentarlo.

Solución que me funcionó en Windows : instale las versiones de 32 bits y 64 bits de MySQL Connector / C 6.0.2 . Abra el Command Prompt y ejecute:

 pip install mysql-python 

Para mí, el siguiente enfoque resolvió el problema (Python 3.5.2; mysqlclient 1.3.9):

  1. Descargue el último conector MySQL C http://dev.mysql.com/downloads/connector/c/ (para mí era Windows (x86, 64-bit), MSI Installer)
  2. Copie el directorio c:\Program Files (x86)\MySQL\MySQL Connector C 6.1\ c:\Program Files\MySQL\MySQL Connector C 6.0.2\ en c:\Program Files (x86)\MySQL\MySQL Connector C 6.1\
  3. Ejecutar pip install mysqlclient
  4. [opcional] eliminar c:\Program Files (x86)\MySQL\MySQL Connector C 6.1\

El problema aquí es solo para los propietarios de instalación de x64 bits, ya que la secuencia de comandos de comstackción está tratando de localizar el conector C incluido en el directorio de archivos de progtwig 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 ve esto cuando intenta pip install mysql-python , la forma más sencilla es copiar

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

Intenté crear el enlace simbólico pero Windows sigue lanzándome 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 está haciendo esto en un entorno virtual, ya sea utilizando Visual Studio o de otra manera, intente con easy_install MySQL-python

  1. Descargar de este

  2. Luego instale este instalador whl by pip. Shift + clic derecho en la carpeta Descargada y elija Open powershell here . Luego instale usando el comando: pip install package_name.whl

Descargue la versión de Connector de https://dev.mysql.com/downloads/connector/c/6.0.html En mi caso, había instalado un conector de 64 bits y mi python era de 32 bits. Así que tuve que copiar MySQL desde archivos de progtwig a Archivos de progtwig (86)

Pasos para Window10:

  • Vaya a https://www.lfd.uci.edu/~gohlke/pythonlibs/#mysql-python
  • Descargue la versión correcta según la versión de python y las especificaciones de hardware: en mi caso, mysqlclient‑1.4.2‑cp37‑cp37m‑win32.whl funciona para python3.7 y Intel CPU.
  • Mientras su env esté todavía activada, vaya a la carpeta de descargas y ejecute pip install mysqlclient-1.4.2-cp37-cp37m-win32.whl