Python easy_install: 指定存放所需文件的目录
我正在尝试使用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中似乎没有这样的选项。我还在继续研究,如果找到答案会在这里分享。
2 个回答
easy_install
是一个工具,它会调用 setup.py
文件,而这个文件会遵循它要安装的包中的 setup.cfg
文件。如果你想用 easy_install
来指定一些选项,比如 --include_dirs
和 --library_dirs
,直接在命令中是做不到的,但你可以把这些选项放到 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]
部分,记得在里面添加,而不是再创建一个新的。
这看起来更像是编译器搜索路径的问题,而不是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输出信息不够,无法判断使用的是哪个编译器。