5

我正在尝试使用 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 似乎没有这样的选项。仍在研究,所以如果我找到我的答案,我会在这里发布。

4

2 回答 2

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 输出来说明正在使用什么编译器。

于 2011-01-21T00:32:39.160 回答
3

easy_installinvokes 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

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

于 2012-01-20T16:06:11.413 回答