win wheel such puede open mysqlclient incluir for fatal failed error cannot c1083 archivo abrir _mysql python windows virtualenv pip mysql-python

wheel - "No se puede abrir el archivo de inclusión: ''config-win.h'': No hay tal archivo o directorio" mientras se instala mysql-python



pip install mysqlclient (21)

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

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

Si enlace simbólicamente (Win7) a los directorios site-packages / MySQLdb de mi python habituales (no los de virtualenv) obtengo

Error loading MySQLdb module: No module named _mysql

Estoy bastante perdido aquí. ¿Alguna sugerencia?



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

En 5.5 config-win. en realidad se ha movido a la carpeta separada de Connector en Windows. es decir, algo así como:

C: / Archivos de programa / MySQL / Connector C 6.0.2 / include

Para superar el problema, no solo es necesario descargar "bits de desarrollo" (que en realidad conecta el conector ), sino también modificar las secuencias de comandos 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 busque 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 olvidé de mencionar. De la misma manera, uno necesita agregar entradas adicionales similares para libs:

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

es decir, su setup_windows.py se parece mucho 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'' ] ...



Descargue MySQL Connector C 6.0.2 del siguiente enlace e Instale.

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 programa / MySQL" a "C: / Archivos de programa (x86) / MySQL".

Luego escribe

pip install MySQL-python

Definitivamente funcionará.


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


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 buffer de nombre de usuario en una publicación anterior), que se encuentra en c: / Program Files / MySQL / MySQL Connector C 6.0.2 y crear una nueva ruta con Archivos de programa (x86) y pegar el contenido allí ya que la instalación no está comprobando correctamente entre máquinas de 32 bits y de 64 bits.

Entonces, la nueva ruta es C: / Archivos de programa (x86) / MySQL / MySQL Connector C 6.0.2. Esta es la ruta que el instalador busca encontrar, así que pegué los archivos allí para ayudar al instalador a encontrar los archivos, lo que estaba causando el error sobre la falta de config-win.h


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 de arriba, y las cosas funcionan bien.


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

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

    También hay un archivo zip para el conector 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 instala mysql-python

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


La solución aceptada ya no parece funcionar para 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 64 bits de MySQL, puede simplemente 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

Lo más probable es que la respuesta sea instalar MySQL Developer Build y seleccionar la opción "C headers / libs" durante la configuración. (como se informa en esta entrada: Creación de MySQLdb para Python en Windows en rationalpie.wordpress.com)

Quizás una solución aún mejor es instalar una compilación precompilada: http://www.technicalbard.com/files/MySQL-python-1.2.2.win32-py2.6.exe


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í fue Windows (x86, 64 bits), instalador MSI)
  2. Copie c:/Program Files/MySQL/MySQL Connector C 6.0.2/ directorio a 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 la instalación de x64 bit, ya que el script de construcción está tratando de ubicar el conector C en el directorio de archivos de programa x86.


Pruebe ActivePython ,

pypm -E C:/myvirtualenv install mysql-python


Sé que esta publicación es muy antigua, pero sigue apareciendo como la más popular en google, así que añadiré más información a este tema.

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

Estaba usando el último Connector C 6.1.6 ya que eso fue sugerido por 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 C Connector 6.0.2 explícitamente.

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

Por lo tanto, al instalar esta versión desde https://dev.mysql.com/downloads/file/?id=378015 el paquete Python se instala sin ningún problema.


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 el library_dirs se cambia a

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

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

Tengo vs2012 instalado, y el directorio lib del conector solo tiene vs10 y vs11 , en el 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.


Seguí la respuesta de Bugagotti, y no funciona en mi windows (Win7 64 bit, py27 y tengo el conector de mysql 6.1 instalado) para mysql-python-1.2.5, así que hice algunos cambios incluso 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 <config-win.h> #else #include "my_config.h" #endif

A:

#if 0 /*defined(MS_WINDOWS)*/ #include <config-win.h> #else #include "my_config.h" #endif

Y con estos cambios, la cuestión de 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.


Si está haciendo esto en un entorno virtual, ya sea usando Visual Studio o de otra manera, intente easy_install MySQL-python


Si pip no instala "MySQLdb", una solución alternativa 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 una ruta similar a su sistema Python) a c:/my_virtenv/Lib/site-packages (ruta a su virtualenv)




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

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

Asegúrese de incluir todos los extras opcionales (Binarios Extra) 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 es necesario actualizar ninguna configuración ni nada de eso. Esta fue la versión más simple para mi trabajo.

Espero eso ayude


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 ves esto cuando intentes pip install mysql-python , la forma más fácil es copiar

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

Traté de 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.