我正在尝试使用easy_install来安装MySQL-python。它几乎立即失败了:
_mysql.c:36:23:错误:my_config.h:没有这样的文件或目录
_mysql.c:38:19:错误:mysql.h:没有这样的文件或目录
_mysql.c:39:26:错误:mysqld_error.h:没有这样的文件或目录
_mysql.c:40:20:错误:errmsg.h:没有这样的文件或目录
找不到标题。我安装了标头,它们只是从/ opt中的源代码安装。它显然不是在寻找那里。我该如何看待它?例如,如果这是配置,我可以做类似“--with-mysql = / opt / mysql”的操作。看来easy_install没有这样的选项。仍然在研究,如果我找到答案,我会在这里发布。
答案 0 :(得分: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输出来告诉使用什么编译器。
答案 1 :(得分:3)
easy_install
调用setup.py
,它将尊重其尝试安装的发行版中的setup.cfg
文件。虽然您无法直接将setup.py选项--include_dirs
和--library_dirs
指定给easy_install,但您可以将它们放在setup.cfg文件中。
我和pysqlite有类似的问题:我把SQLite放在一个非标准的位置,并希望使用easy_install来获取Python绑定。 pysqlite发行版包含一个带有示例include_dirs和library_dirs指令的setup.cfg文件,因此很清楚该怎么做。
如果MySQL-python有一个setup.cfg文件,你可以尝试添加/编辑它以包含:
[build_ext]
include_dirs = /path/to/headers
library_dirs = /path/to/libs
如果setup.cfg文件中已有[build_ext]
部分,请添加到该部分而不是创建第二部分。