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?
Descargar de esto
- Python 2.7: https://pypi.python.org/pypi/mysqlclient/1.3.9
- Python 3.6: https://pypi.python.org/pypi/mysqlclient
Luego instala este whl por instalador pip. Shift + clic con el botón derecho en la carpeta descargada y elija
Open powershell here
. Luego instala usando el comando:pip install package_name.whl
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'' ]
...
Bueno, si todavía tiene el problema, puede descargar el instalador de http://code.google.com/p/soemin/downloads/detail?name=MySQL-python-1.2.3.win32-py2.7.exe
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 directoriolib
mientras que el instalador lo espera enlib/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:
-
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"
- Ejecutar
pip install mysql-python
- 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):
- Descargue el último conector MySQL C http://dev.mysql.com/downloads/connector/c/ (para mí fue Windows (x86, 64 bits), instalador MSI)
- Copie
c:/Program Files/MySQL/MySQL Connector C 6.0.2/
directorio ac:/Program Files (x86)/MySQL/MySQL Connector C 6.1/
- Ejecutar
pip install mysqlclient
- [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)
Solución que funcionó para mí en Windows
: instale las versiones de 32
bits y 64
bits de http://dev.mysql.com/downloads/connector/c/6.0.html#downloads . Abra el Command Prompt
y ejecute:
pip install mysql-python
También tuve muchos dolores de cabeza con MySQLdb.
¿Por qué no utilizar el conector oficial MysQL Python?
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
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.