2011-01-20 19 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 issu的问题。

在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-Python有一个setup.cfg文件,你可以尝试添加/编辑它包括:

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

如果已经有一个在setup.cfg文件[build_ext]部分,添加到它,而不是创造第二个。

相关问题