无法使用mod_wsgi运行python

时间:2018-03-22 21:02:53

标签: python apache mod-wsgi

我正在尝试通过Apache httpd中的mod_wsgi部署Python应用程序,遇到一个奇怪的错误。 我正在使用我公司的自定义python包(2.7),除此之外还有另外一个Python安装,随OS一起提供(不同版本,2.6内容)。问题是,当我定义时 在我的httpd conf中的WSGIPythonHome和WSGIPythonPath变量,我在error_log中充斥着“ImportError:no module named site”错误。查看其他答案,定义这些变量将是此类错误的解决方案。 如果我将用户切换到apache用户,并且设置了PYTHONPATH和PYTHONHOME env变量,当我尝试启动Python 2.7时,我收到同样的错误。

在取消设置变量之后,Python能够正常启动。 所以我尝试从httpd conf中删除WSGIPythonHome和WSGIPythonPath,但在这种情况下,没有任何反应,wsgi脚本没有被执行,因为没有任何东西将Apache指向我的python可执行文件。 mod_wsgi.so已经用pip安装,并从我的PYTHONPATH用于2.7的相同路径加载

1 个答案:

答案 0 :(得分:0)

Apache正在使用的mod_wsgi很可能是为Python 2.6编译的。你不能为Python 2.6编译mod_wsgi,使用Python 2.7安装或虚拟环境。

您应该通过在ldd二进制文件上运行mod_wsgi.so来验证编译的Python版本mod_wsgi。不要以为它使用的是pip安装版本,您可能仍然安装了系统mod_wsgi。

如果是系统mod_wsgi包并且它是为Python 2.6编译的,则需要将其卸载。