2015-03-19 14 views
19

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?

+1

Kto mówi, że to Flask podnosi kości nagrobne 500, a nie uwsgi? –

+0

Spróbuj zaimportować SQLAlchemy w obrębie programu obsługi. –

+0

Jak wygląda twój skrypt start/polecenie uwsgi? Podejrzewam, że jest to problem uwsgi. – BryceH

Odpowiedz

1

Czy zainstalować uwsgi-cesarza przez żłobie pakietu, jak również?

Upewnij się, że śledzisz z prawidłowymi uwsgi.

Niekiedy instalowanie uwsgi z pip i apt powoduje ten problem. Ja sam zastępuję /usr/bin/uwsgi z /usr/local/bin/uwsgi w /etc/init.d/uwsgi.

Należy również sprawdzić uprawnienia do ścieżki i dostęp do db, jeśli są.

Powiązane problemy