Я могу успешно запустить приложение "hello world" с Flask + WSGI ... Но изменение структуры моего проекта с помощью "rout.py" внутри "папки" приводит к ошибке сервера ...
mod_wsgi (pid = 9): целевой сценарий WSGI '/var/www/myfirstapp/hello.wsgi' не может быть загружен как модуль Python.
mod_wsgi (pid = 9): при обработке WSGI возникла исключительная ситуацияскрипт '/var/www/myfirstapp/hello.wsgi'
из folder.routes import simple_page
ImportError: Нет модуля с именем folder.routes
Этодерево моего проекта:
├── folder
│ └── routes.py
├── hello.conf
├── hello.py
├── hello.wsgi
└── README.md
hello.py:
from flask import Flask
from folder.routes import simple_page # works in dev but not with wsgi.. Why?
app = Flask(__name__)
app.register_blueprint(simple_page)
rout.py:
from flask import Blueprint, render_template, abort
from jinja2 import TemplateNotFound
simple_page = Blueprint('simple_page', __name__,
template_folder='templates')
@simple_page.route('/')
def index():
try:
return "Hello world"
except TemplateNotFound:
abort(404)
hello.conf
<VirtualHost *>
ServerName example.com
WSGIScriptAlias / /var/www/myfirstapp/hello.wsgi
WSGIDaemonProcess hello python-path=/var/www/myfirstapp:/var/www/myfirstapp/.env/lib/python3.5/site-packages
<Directory /var/www/myfirstapp>
WSGIProcessGroup hello
WSGIApplicationGroup %{GLOBAL}
Order deny,allow
Allow from all
</Directory>
</VirtualHost>
hello.wsgi:
import sys
sys.path.insert(0, "/var/www/myfirstapp")
from hello import app as application
Примечание: я не понимаю, почему WSGI"хорошо" с этим rout.py в корневой папке (импорт маршрутов), но жалуется на (hello.py) импорт "folder.routes" в hello.py, если я помещаю тот же файл в "папку" ...