无法使用mod_wsgi(Apache)部署Flask python Web应用程序

时间:2017-05-10 12:11:39

标签: python python-2.7 flask apache2 mod-wsgi

我开发了一个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

请问有人帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

验证为哪个版本的mod_wsgi编译。

这需要与您想要使用的相同。

还要修改使用Python虚拟环境的方式并使用推荐的方法。

建议不要将python-pathsite-packages一起使用。

虚拟环境必须与为mod_wsgi编译的Python版本相同。