2011-01-20 1 views
5

Я пытаюсь использовать easy_install для установки MySQL-python. Он не срабатывает почти сразу:python easy_install: указать папку, в которой хранятся необходимые файлы

_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

Он не может найти заголовки. У меня установлены заголовки, они просто установлены из источника в/opt. Очевидно, он не смотрит туда. Как мне заставить его посмотреть там? Например, если это была настройка, я мог бы сделать что-то вроде «--with-mysql =/opt/mysql». Не похоже, что есть такой вариант с easy_install. Все еще исследуя, поэтому, если найду свой ответ, я отправлю его здесь.

ответ

5

Это больше похоже на проблему с пути поиска компилятора, чем на получение easy_install.

Настройка переменной окружения включения пути до вызова easy_install.

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

Если это не сработает, попробуйте установить include_path или CPLUS_INCLUDE_PATH переменные. Недостаточно простого вывода easy_install в вопросе, чтобы узнать, какой компилятор используется.

+0

Интересно, почему easy_install/pip не чтит мой INCLUDE_PATH env var. Спасибо за сообщение. –

+0

Это решение не сработало для меня. Вместо этого я смог пройти мимо ошибки, установив pkg-config (sudo apt-get install pkg-config) – taranaki

3

easy_install вызывает setup.py, который будет уважать файл setup.cfg в дистрибутиве, который он пытается установить. Хотя вы не можете указать параметры setup.py --include_dirs и --library_dirs непосредственно в easy_install, их можно поместить в файл setup.cfg.

У меня проблема с pysqlite: я поставил SQLite в нестандартное место и хотел использовать easy_install для получения привязок Python. Распределение pysqlite включает файл setup.cfg с образцами include_dirs и library_dirs, поэтому было ясно, что делать.

Если MySQL-питон имеет файл setup.cfg, вы можете попробовать добавить/редактировать его включать:

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

Если уже есть [build_ext] раздел в файле setup.cfg, добавить к нему вместо создавая вторую.