Apache не работает с Flask с использованием мода WSGI - PullRequest
0 голосов
/ 22 января 2020

Я пытаюсь использовать 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 folder, как и 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()

1 Ответ

0 голосов
/ 22 января 2020

on: 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()

с flask это похоже на случай ...

если у вас продолжаются проблемы, вы можете проверить nginx и официантку, или gunicorn Развлекайся:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...