让 mod_wsgi 在 Windows Server 2012 上与 Python 2.7/Apache 一起工作;无法加载模块

Getting mod_wsgi to work with Python 2.7/Apache on Windows Server 2012; cannot load module

我通过 pip install mod_wsgi 在 Windows 上成功安装了 mod_wsgi。但是,当我将 mod_wsgi-express module-config 的输出复制到我的 httpd.conf 并尝试启动 httpd 时,出现以下错误:

httpd.exe: Syntax error on line 185 of C:/path/to/httpd.conf: Cannot load c:/path/to/venv/Lib/site-packages/mod_wsgi/server/mod_wsgi.pyd into server

这已经是在更正 module-config 的粘贴输出之后,因为它是 .../venv/lib/site-packages/mod_wsgi/server/mod_wsgiNone(注意 "None")。我将 "None" 更改为“.pyd”,因为这是正确的路径。

我已经尝试将它安装在虚拟环境之外(Python 在 C:\Python27),但没有任何区别 -> 同样的错误。

我也试过uninstall/re-installmod_wsgi。我有一次安装失败,因为 Python 2.7(版本 9.0.0.30729)的 Microsoft Visual C++ 编译器不存在。安装之后,mod_wsgi总是安装成功。

apache (Apache/2.4.27 (Win32)) 来自 xampp 包,当我删除为 wsgi 添加的行时,它可以正常启动。

因为第三方模块,我需要使用Python 2.7。所以很遗憾,目前无法选择 3.x。

确切的 Python 版本是 2.7.13(32 位)。

为了完整起见,module-config 的输出是:

LoadModule wsgi_module "c:/www/my_project/venv/lib/site-packages/mod_wsgi/server/mod_wsgiNone" WSGIPythonHome "c:/www/my_project/venv"

更新: 又尝试了一件事情:

还是一样的错误...

问题是 Apache 是用 VC14 构建的,但 Python 2.7 自然是用 VC9 构建的。安装用 VC9 构建的 Apache 解决了我的问题。