python easy_install:指定包含所需文件的目录

时间:2011-01-20 22:00:31

标签: python header-files easy-install mysql-python

我正在尝试使用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 个答案:

答案 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]部分,请添加到该部分而不是创建第二部分。