使用Windows 7 64x。我已经安装了Python 3.3.2。
我从http://code.google.com/p/modwsgi/wiki/DownloadTheSoftware?tm=2
下载了MOD_WSGI
我现在正在尝试按照本教程:http://code.google.com/p/modwsgi/wiki/InstallationOnWindows
我跑
nmake -f win32-ap22py31.mk
但是我收到了一个错误:
cl /DWIN32 /DNDEBUG /I"c:\Program Files\Microsoft Visual Studio 9.0\VC\include" /I"c:\Program Files\Microsoft SDKs\Windows\v6.0A\Include" /I"c:\Program Files\Apache Software Foundation\Apache2.2\include" /I"c:\Python31\include" /MD /GF /Gy /O2 /Wall /Zc:wchar_t /Zc:forScope mod_wsgi.c /LD /link "/LIBPATH:c:\Program Files\Microsoft Visual Studio 9.0\VC\lib" "/LIBPATH:c:\Program Files\Microsoft SDKs\Windows\v6.0A\Lib" "/LIBPATH:c:\Program Files\Apache Software Foundation\Apache2.2\lib" /LIBPATH:c:\Python31\libs /OPT:REF /OPT:ICF=2 /RELEASE /SUBSYSTEM:WINDOWS python31.lib libhttpd.lib libapr-1.lib libaprutil-1.lib /OUT:mod_wsgi.so
mod_wsgi.c
mod_wsgi.c(34) : fatal error C1083: Cannot open include file: 'httpd.h': No such file or directory
答案 0 :(得分:0)
这是mod_wsgi make文件中的配置问题。 在构建win32-ap22py31.mk时,nmake需要知道正确的Apache和Python包含和库路径。 之后,nmake知道编译和链接输出mod_wsgi.so所需的目标文件的位置
首先检查Apache和Python的安装位置并采用这些路径。 您将需要它们来修改make文件。
我们使用python 2.7,因此目录路径与您的版本略有不同。
在Notepad ++等文本编辑器中打开win32-ap22py31.mk。
你会看到如下行:
CPPFLAGS = \
/DWIN32 \
/DNDEBUG \
/I"c:\Program Files\Microsoft Visual Studio 9.0\VC\include" \
/I"c:\Program Files\Microsoft SDKs\Windows\v6.0A\Include" \
/I"C:\apache2.2\include" \
/I"C:\Python27\PC"
在这里,您应该设置路径以包含来自apache和python安装的make文件使用的文件。 它们以/ I指令开头,如果将命令转移到下一行,则应以“\”结束。 如果您需要更多包含路径,请在此处添加它们。 不要在目录路径的末尾添加“\”,因为它可能会破坏构建,并且您将获得构建错误。 还要检查包含的行是否适合安装VC ++和SDK(前两行)。
对于libarary文件:
LDFLAGS = \
/link \
"/LIBPATH:c:\Program Files\Microsoft Visual Studio 9.0\VC\lib" \
"/LIBPATH:c:\Program Files\Microsoft SDKs\Windows\v6.0A\Lib" \
"/LIBPATH:C:\apache2.2\lib" \
"/LIBPATH:C:\Python27\PCbuild" \
/OPT:REF \
/OPT:ICF=2 \
/RELEASE \
/SUBSYSTEM:WINDOWS
在这里,您应该使用/ LIBPATH指令而不是/ I添加库路径。
对于使用过的库,请更改以下命令:
LDLIBS = \
python27.lib \
libhttpd.lib \
libapr-1.lib \
libaprutil-1.lib
如果不使用python27.lib,请设置python31.lib。
libhttpd.lib,libapr-1.lib和libaprutil-1.lib是在Apache2.2版本中编译的库。