无法从源安装mod_wsgi

时间:2013-07-03 13:45:01

标签: python mod-wsgi

在尝试安装modwisgi-3.4时,我在make期间收到以下错误: mod_wsgi.c:142:20: error: Python.h: No such file or directory 官方疑难解答页面http://code.google.com/p/modwsgi/wiki/InstallationIssues建议“安装与您安装的Python运行时包对应的Python开发人员包”。

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

2 个答案:

答案 0 :(得分: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)

configure.ac Autoconf文件尝试解决这个问题,但它似乎以一种显然不适合你的笨重方式进行,所以这种手动方式有望解决问题。

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

答案 1 :(得分:0)

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