5 votes

python easy_install : spécifier le répertoire abritant les fichiers requis

J'essaie d'utiliser easy_install pour installer MySQL-python. L'installation échoue presque immédiatement :

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

Il ne trouve pas les en-têtes. J'ai les en-têtes installés, ils sont juste installés à partir des sources dans /opt. Il est évident qu'il ne cherche pas là. Comment faire pour qu'il les cherche là ? Par exemple, si c'était configure, je pourrais faire quelque chose comme "--with-mysql=/opt/mysql". Il ne semble pas qu'il y ait une telle option avec easy_install. Je suis toujours en train de chercher, donc si je trouve ma réponse, je la posterai ici.

5voto

pwan Points 2038

Cela ressemble plus à un problème avec le chemin de recherche du compilateur qu'à un problème lié à easy_install.

La définition de la variable d'environnement include path avant l'appel easy_install peut fonctionner.

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

Si cela ne fonctionne pas, essayez de définir les variables INCLUDE_PATH ou CPLUS_INCLUDE_PATH. Il n'y avait pas assez de sortie easy_install dans la question pour dire quel compilateur est utilisé.

3voto

Stephan A. Terre Points 198

easy_install invoque setup.py qui respectera une setup.cfg dans la distribution qu'il essaie d'installer. Bien que vous ne puissiez pas spécifier les options de setup.py --include_dirs y --library_dirs directement à easy_install, vous pouvez les mettre dans le fichier setup.cfg.

J'ai un problème similaire avec pysqlite : j'ai placé SQLite dans un emplacement non standard, et je voulais utiliser easy_install pour obtenir les liaisons Python. La distribution de pysqlite comprend un fichier setup.cfg avec des exemples de directives include_dirs et library_dirs, donc la marche à suivre était claire.

Si MySQL-python possède un fichier setup.cfg, vous pouvez essayer de l'ajouter ou de le modifier pour l'inclure :

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

S'il existe déjà un [build_ext] dans le fichier setup.cfg, complétez-le au lieu d'en créer un deuxième.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X