【问题标题】:Apache not working with Flask using WSGI modApache 无法使用 WSGI mod 与 Flask 一起工作
【发布时间】:2020-01-22 00:30:01
【问题描述】:

我正在尝试将 Apache 用作我的 Flask 应用程序的代理服务器。但是我遇到了以下错误...因为我是新手,所以我不知道从哪里开始寻找。

我没有使用任何虚拟环境。它是一个 Python3 Flask 应用程序。

Apache 日志

[Tue Jan 21 16:16:19.249067 2020] [wsgi:error] [pid 6515:tid 3041002528] [remote 10.0.0.12:50757] mod_wsgi (pid=6515): Failed to exec Python script file '/home/pi/RaspBerryPiAdhan/www/sysinfo.wsgi'.
[Tue Jan 21 16:16:19.249609 2020] [wsgi:error] [pid 6515:tid 3041002528] [remote 10.0.0.12:50757] mod_wsgi (pid=6515): Exception occurred processing WSGI script '/home/pi/RaspBerryPiAdhan/www/sysinfo.wsgi'.
[Tue Jan 21 16:16:19.250245 2020] [wsgi:error] [pid 6515:tid 3041002528] [remote 10.0.0.12:50757] Traceback (most recent call last):
[Tue Jan 21 16:16:19.250679 2020] [wsgi:error] [pid 6515:tid 3041002528] [remote 10.0.0.12:50757]   File "/home/pi/RaspBerryPiAdhan/www/sysinfo.wsgi", line 5, in <module>
[Tue Jan 21 16:16:19.251735 2020] [wsgi:error] [pid 6515:tid 3041002528] [remote 10.0.0.12:50757]     from test import app as application
[Tue Jan 21 16:16:19.252221 2020] [wsgi:error] [pid 6515:tid 3041002528] [remote 10.0.0.12:50757] ImportError: cannot import name app

test.py 在 WWW 文件夹中,sysinfo.wsgi 也是

wsgi 文件

import sys
sys.path.append('/home/pi/RaspBerryPiAdhan/www')
from test import app as application

配置文件

 WSGIDaemonProcess sysinfo user=pi group=www-data threads=5
 WSGIScriptAlias /sysinfo /home/pi/RaspBerryPiAdhan/www/sysinfo.wsgi
 <Directory "/home/pi/RaspBerryPiAdhan/www">
        WSGIProcessGroup sysinfo
        WSGIScriptReloading On
        WSGIApplicationGroup %{GLOBAL}
        Require all granted
 </Directory>
 ErrorLog /home/pi/RaspBerryPiAdhan/www/logs/error.log

test.py

from flask import Flask
from views.address import address_blueprint


    app = Flask(__name__)


    @app.route('/')
    def hello():
        return "Hello World! 2"

    if __name__ == '__main__':
        app.run()

【问题讨论】:

  • 您将 /home/pi/RaspBerryPiAdhan/www 添加到模块查找路径,我假设您希望将模块加载到那里,您是否将 test.py 放在该文件夹中?
  • Test.py 在 www 文件夹中。

标签: python regex flask mod-wsgi


【解决方案1】:

开启:https://flask.palletsprojects.com/en/1.1.x/deploying/mod_wsgi/#creating-a-wsgi-file 它还说:

如果在 init.py 文件中使用了工厂函数,则应导入该函数:

from yourapplication import create_app
application = create_app()

使用烧瓶似乎是这种情况......

如果您仍然遇到问题,您可以检查 nginx 和服务员,或 gunicorn 玩得开心:)

【讨论】:

    猜你喜欢
    • 2018-07-08
    • 2014-11-24
    • 1970-01-01
    • 2015-07-07
    • 2014-04-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多