让mod_wsgi在Windows Server 2012上使用Python 2.7 / Apache;无法加载模块

时间:2017-10-07 15:46:46

标签: python apache mod-wsgi windows-server-2008-r2

我在Windows上通过pip install mod_wsgi成功安装了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(请注意“无”)。我将“无”更改为“.pyd”,因为这是正确的路径。

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

我还尝试卸载/重新安装mod_wsgi。我有一个安装失败,因为Microsoft Visual C ++编译器for Python 2.7(版本9.0.0.30729)不存在。安装完成后,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"

更新:又尝试了一件事:

  • 卸载mod_wsgi(带点子)
  • set "MOD_WSGI_APACHE_ROOTDIR=C:/WWW/apache"
  • 再次pip install mod_wsgi

仍然是同样的错误......

1 个答案:

答案 0 :(得分:0)

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