如何使用Apache2.2&;编译mod_wsgi;适用于Windows的Python 3.2?

如何使用Apache2.2&;编译mod_wsgi;适用于Windows的Python 3.2?,python,apache,mod-wsgi,Python,Apache,Mod Wsgi,我从下载了mod_wsgi的最新源代码,但无法在使用Apache2.2和Python3.2的Windows中编译它。存在一些未定义的变量,因为MOD_WSGI_WITH_守护进程未定义MOD_WSGI_WITH_守护进程未定义,因为APR_HAS_FORK为0 在“mod_wsgi.c”中: #if APR_HAS_OTHER_CHILD && APR_HAS_THREADS && APR_HAS_FORK #define MOD_WSGI_WITH_DAEMON

我从下载了mod_wsgi的最新源代码,但无法在使用Apache2.2和Python3.2的Windows中编译它。存在一些未定义的变量,因为
MOD_WSGI_WITH_守护进程
未定义
MOD_WSGI_WITH_守护进程
未定义,因为
APR_HAS_FORK
为0

在“mod_wsgi.c”中:

#if APR_HAS_OTHER_CHILD && APR_HAS_THREADS && APR_HAS_FORK
#define MOD_WSGI_WITH_DAEMONS 1
#endif
...
#if defined(MOD_WSGI_WITH_DAEMONS)
...
static WSGIDaemonProcess *wsgi_daemon_process = NULL;
...
#endif
在“apr.h”中:

#define APR_HAS_FORK              0
我是否有可能使用Apache2.2和Python3.2为Windows编译mod_wsgi?如果是,怎么做

更新:

在默认分支中的“wsgi_apache.h”中:

#if (APR_MAJOR_VERSION == 0) && \
    (APR_MINOR_VERSION == 9) && \
    (APR_PATCH_VERSION < 5)
extern apr_status_t wsgi_apr_unix_file_cleanup(void *);
extern apr_status_t wsgi_apr_os_pipe_put_ex(apr_file_t **, apr_os_file_t *,
                                            int, apr_pool_t *);
#define apr_unix_file_cleanup wsgi_apr_unix_file_cleanup
#define apr_os_pipe_put_ex wsgi_apr_os_pipe_put_ex
#endif
因此,不会定义
apr\u unix\u file\u cleanup

我在Windows7(x64)中使用Apache 2.2.22和Python 3.2.3

最新的mod_wsgi-3.X可以编译为“.so”文件,但出现以下错误:

mod_wsgi.so.manifest : general error c1010070: Failed to load and parse the manifest. The system cannot find the file specified.
我对此感到担心。我不知道这是否是一个真正的问题

而且,我无法加载mod_wsgi模块。Apache的错误日志显示:

Fatal Python error: Py_Initialize: can't initialize sys standard streams
LookupError: unknown encoding: cp0
[Sat May 05 18:35:43 2012] [crit] (OS 1813)The specified resource type cannot be found in the image file.  : master_main: create child process failed. Exiting.

我找到了这个:。这可能会引起问题。我不确定。

请使用最新的源代码重试。您可能还想暂时使用3.X分支而不是默认分支。

请查看这是否有帮助:由于apr版本的原因,仍然无法编译默认分支。这次,
apr\u unix\u file\u cleanup
未定义(在“wsgi\u apache.c”中)。可以编译3.X分支,但找不到清单文件。清单是否有问题?请使用apr\u unix\u文件\u cleanup()问题的最新主干重试。您使用的是什么版本的Apache2.2?只有在使用非常旧的Apache2.2时,才会出现这个问题。对于清单问题,将实际错误添加到问题中。我不能一直猜测这个问题。请使用最新的trunk再试一次。对于编码问题,避免该问题的解决方法可能会导致Python3.3中的修复出现问题,否则他们会把它搞得更糟。确认最新中继没有问题,并将端口返回到3.X分支。对于清单问题,您使用的是什么VC++版本。顺便说一句,你真的应该把这个问题放到mod_wsgi列表上。所以不应该是调试类似问题的地方。最新的作品,谢谢!至于清单问题,我使用Visual C++ 2010。我想也许你应该在.mk文件的
LDFLAGS
中添加“
/MANIFEST
”,这样链接器就可以生成MANIFEST文件。如果它能工作,那是关于什么的?请使用mod_wsgi邮件列表尝试调试问题。在mod_wsgi问题跟踪程序中提交一张罚单只稍微好一点。在邮件列表上,更容易进行来回讨论。
Fatal Python error: Py_Initialize: can't initialize sys standard streams
LookupError: unknown encoding: cp0
[Sat May 05 18:35:43 2012] [crit] (OS 1813)The specified resource type cannot be found in the image file.  : master_main: create child process failed. Exiting.