我开发了一个python flask web应用程序并试图使用mod_wsgi(Apache)在linux(ubuntu 12.04)机器上托管。但是我无法作为显示内部服务器错误的客户端Web浏览器访问该应用程序。
在检查apache错误日志时,注意到以下错误。
[Wed May 10 16:08:11 2017] [error] [client 192.168.160.101] File "/var/www/FlaskApp/env/lib/python2.7/site-packages/werkzeug/http.py", line 28, in <module>
[Wed May 10 16:08:11 2017] [error] [client 192.168.160.101] from urllib.request import parse_http_list as _parse_list_header
[Wed May 10 16:08:11 2017] [error] [client 192.168.160.101] ImportError: No module named request
在我的系统中,安装了python2.7和python 3.6(anaconda),并且python --version和pip -V都显示了不同的python解释器,这在python解释器中的不匹配导致了这个问题。我已经用python2.x模式编写了代码。
ccptriage@ccptriage-ThinkCentre-M72e:/var/www/FlaskApp/env/lib/python2.7/site-packages$ python --version
Python 2.7.6
ccptriage@ccptriage-ThinkCentre-M72e:/var/www/FlaskApp/env/lib/python2.7/site-packages$ pip -V
pip 9.0.1 from /home/ccptriage/anaconda3/lib/python3.6/site-packages (python 3.6)
我的apache配置文件如下, 的的/ etc / apache2的/位点可用/ FlaskApp
<VirtualHost *:80>
ServerName TVMTELXSI
ServerAdmin vysakh
#WSGIDaemonProcess FlaskApp threads=5
WSGIDaemonProcess FlaskApp python-path=/var/www/FlaskApp:/var/www/FlaskApp/env/lib/python2.7/site-packages
WSGIProcessGroup FlaskApp
WSGIScriptAlias / /var/www/FlaskApp/flaskapp.wsgi
<Directory /var/www/FlaskApp/>
WSGIProcessGroup FlaskApp
Order allow,deny
Allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
请问有人帮我解决这个问题吗?
答案 0 :(得分:0)
验证为哪个版本的mod_wsgi编译。
这需要与您想要使用的相同。
还要修改使用Python虚拟环境的方式并使用推荐的方法。
建议不要将python-path
与site-packages
一起使用。
虚拟环境必须与为mod_wsgi编译的Python版本相同。