我从https://code.google.com/p/modwsgi/source/checkout下载了最新的mod_wsgi源代码,但我无法在Windows中使用Apache 2.2& Python 3.2。有一些未定义的变量,因为MOD_WSGI_WITH_DAEMONS
未定义; MOD_WSGI_WITH_DAEMONS
未定义,因为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
我有没有机会用Apache 2.2编译mod_wsgi& Python 3.2 for Windows?如果是这样,怎么样?
更新
在默认分支中,在“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_version.h”中:
#define APR_MAJOR_VERSION 1
...
#define APR_MINOR_VERSION 4
...
#define APR_PATCH_VERSION 5
因此不会定义apr_unix_file_cleanup
。
我在Windows 7(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.
我发现了这个:http://bugs.python.org/review/6501/diff/2518/6050。这可能会导致问题。我不确定。
答案 0 :(得分:2)
使用最新的源代码再试一次。您可能还想暂时使用3.X分支而不是默认分支。