Файл WSGI не загружается Python Flask файл на Apache 2.4 на Windows Server 2012 - PullRequest
0 голосов
/ 03 апреля 2020

Я пытаюсь запустить скрипт Flask, который запрашивает базу данных SQLite и отображает Rest API только для внутри сети. Он будет обслуживаться на Windows Server 2012 под управлением Apache 2.4 с mod_wsgi. Я также использую Python 3.7.

Ошибка, которую я получаю в журнале ошибок:

File "D:/sites/cifsearch/website/web.wsgi", line 7, in <module>\r, referer: 
     http://IP Address/  from app.py import app as application\r, referer: 
     http://IP Address/  ModuleNotFoundError: No module named 'app'\r, referer: http://IP Address/

web.wsgi находится в том же каталоге, что и app.py

Это то, что я написал на web.wsgi. Я скопировал и вставил это из того, что я мог найти в Google, поскольку я все еще очень плохо знаком с этим.

import sys
import logging

logging.basicConfig (stream=sys.stderr)
sys.path.insert(0,'/')

from app.py import app as application

Я также прокомментировал:

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

в app.py на этом сайте: https://flask.palletsprojects.com/en/1.1.x/deploying/mod_wsgi/. Но я не думаю, что просьба зашла так далеко. Я подозреваю, это, вероятно, связанный путь или разрешения?

1 Ответ

0 голосов
/ 03 апреля 2020

Ваше приложение не настроено как пакет, поэтому импорт в ваш код wsgi дает вам ModuleNotFoundError.

Поместите ваше приложение в каталог с именем, например, myapp и добавьте __init__.py файл в каталог, содержащий

from .app import app

, чтобы сделать его пакетом.

Ваша структура каталогов должна выглядеть следующим образом:

web.wsgi
myapp/
    app.py
    __init__.py

Затем измените строку import в файле wsgi на

from myapp import app as application
...