Wszystko działa poprawnie, gdy uruchamiam kolbę przez source venv/bin/activate && python run.py
.Kolba w systemie uWSGI powodująca błąd 500 serwera wewnętrznego po zaimportowaniu SQLAlchemy
from flask import Flask
from flask.ext.sqlalchemy import SQLAlchemy
app = Flask(__name__)
@app.route("/")
def hello():
return "Hello, world!"
if __name__ == "__main__":
app.debug = True
app.run(host='0.0.0.0', port=8080)
Ale kiedy uruchomić tę samą aplikację z nginx/emperor.uwsgi następnie każdy hit na serwer zwraca 500. Gdybym wykomentuj import sqlalchemy następnie wczytywania strony, zgodnie z oczekiwaniami.
Per this thread Próbowałem umożliwiające leniwy/lazy-app, ale to nie ma znaczenia. Flask podnosi wyjątek, więc nginx/uwsgi nie rejestruje niczego.
Próbowałem już korzystać z from werkzeug.debug import DebuggedApplication
, ale wciąż otrzymywałem absolutnie "Wewnętrzny błąd serwera" w mojej przeglądarce.
Config:
[uwsgi]
uid = http
gid = http
socket = /var/run/project.uwsgi.sock
chown-socket = http
chmod-socket = 664
pidfile = /var/run/project.master.pid
master = true
lazy = true
lazy-apps = true
chdir = /srv/http/project
python-path = /srv/http/project
virtualenv = /srv/http/project/venv
module = run
callable = app
plugin = python
home = venv
Nic niezwykłego.
source venv/bin/activate && pip list && deactivate
wyjściowa:
Flask (0.10.1)
Flask-SQLAlchemy (2.0)
itsdangerous (0.24)
Jinja2 (2.7.3)
MarkupSafe (0.23)
pip (6.0.8)
setuptools (12.0.5)
SQLAlchemy (0.9.9)
uWSGI (2.0.9)
Werkzeug (0.10.1)
Wszystkie Podejrzani są obecne.
Całkowicie po omacku na tym, ktoś wie, jak debugować/obsługiwać to?
Kto mówi, że to Flask podnosi kości nagrobne 500, a nie uwsgi? –
Spróbuj zaimportować SQLAlchemy w obrębie programu obsługi. –
Jak wygląda twój skrypt start/polecenie uwsgi? Podejrzewam, że jest to problem uwsgi. – BryceH