0

尝试安装 modwisgi-3.4 时出现以下错误makemod_wsgi.c:142:20: error: Python.h: No such file or directory 官方故障排除页面http://code.google.com/p/modwsgi/wiki/InstallationIssues建议“安装与 Python 运行时对应的 Python 开发人员包您已安装的软件包”。

现在如何从源代码安装提到的开发包?我正在使用 httpd-2.2.24 和 modwisgi 3.4 在 linux 上运行 python2.7.4。

4

2 回答 2

1

运行以下命令:

$ python-config --cflags

这将为您提供一个标志列表以传递给编译器以查找 Python.h:

$ python-config --cflags
-I/usr/include/python3.3m -I/usr/include/python3.3m -Wno-unused-result -DDYNAMIC_ANNOTATIONS_ENABLED=
1 -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -march=x86-64 -mtune=generic -O2 -pipe -fstack-pr
otector --param=ssp-buffer-size=4 -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector --param=ss
p-buffer-size=4

您可能还需要运行python-config --ldflags必要的链接器标志。

如果您安装了多个版本的 Python,您可以指定,即python2.7-config

然后,我将手动编辑该文件posix-ap2X.mk.in,使其包含以下内容:

CFLAGS = @CFLAGS@ $(shell python-config --cflags)
LDFLAGS = @LDFLAGS@ $(shell python-config --ldflags)

Autoconf 文件试图找出这些configure.ac东西,但它似乎以一种显然不适合你的笨重方式来做,所以这种手动方式有望解决问题。

编辑:哦,另外,请确保您使用正确的python-config并根据需要指定要使用的 Python 解释器。例如,如果您已从源代码将 Python 安装到某个非标准位置,而在通常位置安装了另一个版本,请务必指定这一点(即/path/to/my/python-config在上述编辑中使用并将参数传递PYTHON=/path/to/my/pythonconfigure脚本)。事实上,简单地指定正确的 Python 解释器可能会导致包含的configure脚本正确地完成其工作。

于 2013-07-03T13:51:36.310 回答
0

您必须使用 mod_wsgi 配置的 --with-python 选项来告诉它您从源代码安装的“python”二进制文件的路径。看起来你还没有这样做,它仍在使用没有安装相应开发包的系统 Python。在运行时提供实际的“配置”脚本命令行的详细信息,并告诉我们您自己安装的 Python 实际位于何处。还要确保运行“make distclean”以清除任何旧构建的结果,以防混淆。

于 2013-07-04T01:08:15.077 回答