mod_wsgi httpd 和 Flask 应用程序导入错误

Import Error with mod_wsgi httpd and a Flask Application

好的,这是我在有人尝试访问服务器时收到的错误。 (来自error_log)

错误

[Wed Dec 14 11:49:12 2016] [error] [client 10.0.2.15] mod_wsgi (pid=19122): Target WSGI script '/var/www/QuickSearch/quicksearch.wsgi' cannot be loaded as Python module.
[Wed Dec 14 11:49:12 2016] [error] [client 10.0.2.15] mod_wsgi (pid=19122): Exception occurred processing WSGI script '/var/www/QuickSearch/quicksearch.wsgi'.
[Wed Dec 14 11:49:12 2016] [error] [client 10.0.2.15] Traceback (most recent call last):
[Wed Dec 14 11:49:12 2016] [error] [client 10.0.2.15]   File "/var/www/QuickSearch/quicksearch.wsgi", line 12, in <module>
[Wed Dec 14 11:49:12 2016] [error] [client 10.0.2.15]     from quicksearch import app
[Wed Dec 14 11:49:12 2016] [error] [client 10.0.2.15]   File "/var/www/QuickSearch/QuickSearch/quicksearch.py", line 5, in <module>
[Wed Dec 14 11:49:12 2016] [error] [client 10.0.2.15]     from flask import Flask
[Wed Dec 14 11:49:12 2016] [error] [client 10.0.2.15]   File "/usr/lib/python2.6/site-packages/flask/__init__.py", line 19, in <module>
[Wed Dec 14 11:49:12 2016] [error] [client 10.0.2.15]     from jinja2 import Markup, escape
[Wed Dec 14 11:49:12 2016] [error] [client 10.0.2.15] ImportError: No module named jinja2

我的目录

quicksearch.py 是主要的应用程序,其余的是 html 网站等

/var/www/QuickSearch/
|-- QuickSearch
|   |-- __init__.py
|   |-- quicksearch.py
|   |-- static
|   |   |-- css
|   |   |-- fonts
|   |   `-- js
|   `-- templates
`-- quicksearch.wsgi

quicksearch.wsgi

#!/usr/bin/env /usr/prod/mts/platform/sandboxes/rhel6/mts-build-09/bin/python
import sys
import logging
logging.basicConfig(stream=sys.stderr)

activate_this = '/var/www/QuickSearch/QuickSearch/venv/bin/activate_this.py'
execfile(activate_this, dict(__file__=activate_this))

sys.path.insert(0,"/var/www/QuickSearch/QuickSearch/")
sys.path.append("/var/www/QuickSearch/")

from quicksearch import app as application

quicksearch.conf

这是服务器的配置文件

WSGIPythonPath "/var/www/QuickSearch/QuickSearch/venv/lib64/python2.7/site-packages"
<VirtualHost *:80>
    ServerName 10.0.2.15

    WSGIScriptAlias / /var/www/QuickSearch/quicksearch.wsgi
    WSGIScriptReloading On

    <Directory /var/www/QuickSearch/QuickSearch/>
        Order deny,allow
        Allow from all
    </Directory>
</VirtualHost>

我完全不知所措,这两天我一直在努力解决这个问题,但不知道下一步该怎么做。我已经看过与此类似的线程,但仍未找到解决方案。如果您需要任何信息来帮助解决此问题,请 post。谢谢你。

您的 mod_wsgi 是为 Python 2.6 编译的。您不能使用 Python 2.7 强制它使用 Python 虚拟环境。 mod_wsgi 关于 Python 虚拟环境的文档对此进行了解释,网址为:

您将需要安装一个 mod_wsgi 版本,它是为 Python 2.7 编译的。