2011-01-20 5 views
5

Estoy intentando usar easy_install para instalar MySQL-python. Falla casi de inmediato:python easy_install: especifique los archivos necesarios para el alojamiento del directorio

_mysql.c:36:23: error: my_config.h: No such file or directory
_mysql.c:38:19: error: mysql.h: No such file or directory
_mysql.c:39:26: error: mysqld_error.h: No such file or directory
_mysql.c:40:20: error: errmsg.h: No such file or directory

No puede encontrar los encabezados. Tengo instalados los encabezados, solo están instalados desde el origen en/opt. Obviamente no está buscando allí. ¿Cómo lo hago ver allí? Por ejemplo, si esto fue configurado, podría hacer algo como "--with-mysql =/opt/mysql". No parece que exista tal opción con easy_install. Todavía estoy investigando, así que si encuentro mi respuesta, la publicaré aquí.

Respuesta

5

Esto se parece más a un problema con la ruta de búsqueda del compilador que a un easy_install issu.

Estableciendo la variable de entorno de ruta de inclusión antes de que funcione la llamada easy_install.

C_INCLUDE_PATH=/path/to/your/mysql/include/files easy_install intall MySQL-python 

Si eso no funciona, intente configurar las variables include_path o CPLUS_INCLUDE_PATH. No hubo suficiente salida easy_install en la pregunta para indicar qué compilador se está utilizando.

+0

Me pregunto por qué easy_install/pip no respeta mi INCLUDE_PATH env var. Gracias por la publicacion. –

+0

Esta solución no funcionó para mí. En cambio, pude pasar el error instalando pkg-config (sudo apt-get install pkg-config) – taranaki

3

easy_install invoca setup.py, que respetará un archivo setup.cfg en la distribución que intenta instalar. Aunque no puede especificar las opciones de setup.py --include_dirs y --library_dirs directamente en easy_install, puede ponerlas en el archivo setup.cfg.

Tengo un problema similar con pysqlite: puse SQLite en una ubicación no estándar, y quería usar easy_install para obtener los enlaces de Python. La distribución pysqlite incluye un archivo setup.cfg con ejemplos de directivas include_dirs y library_dirs, por lo que estaba claro qué hacer.

si MySQL-python tiene un archivo setup.cfg, se podría tratar de añadir/editar para incluir:

[build_ext] 
include_dirs = /path/to/headers 
library_dirs = /path/to/libs 

Si ya hay una sección en el archivo [build_ext] setup.cfg, agregar a ella en lugar de creando una segunda.

Cuestiones relacionadas