2015-03-19 4 views
19

Alles funktioniert gut, wenn ich Kolben über source venv/bin/activate && python run.py laufen lasse.Flask in uWSGI verursacht 500 Interner Serverfehler nur beim Import von 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) 

Aber wenn ich die gleiche Anwendung mit nginx/emperor.uwsgi laufen dann jeder Treffer auf den Server zurückgibt 500. Wenn ich den SQLAlchemy Import kommentieren Sie dann die Seite geladen wird, wie erwartet.


Per this thread Ich habe versucht, so dass faul/lazy-app, aber es hat keine Wirkung. Flask löst die Ausnahme aus, daher protokolliert nginx/uwsgi nichts.

Ich habe versucht, from werkzeug.debug import DebuggedApplication zu verwenden, aber immer noch bekommen nur absolute Knochen "Internal Server Error" in meinem Browser.


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 

Nichts Ungewöhnliches.


source venv/bin/activate && pip list && deactivate Ausgang:

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) 

Alle üblichen Verdächtigen sind vorhanden.

Völlig im Dunkeln auf diesem einen, weiß jemand, wie man das debuggt/handhabt das?

+1

Wer sagt, es ist Flask Anhebung der Barebones 500, und nicht uwsgi? –

+0

Versuchen Sie, SQLAlchemy innerhalb des Handlers zu importieren. –

+0

Wie sieht dein uwsgi-Skript/-Befehl aus? Ich würde vermuten, dass es ein uwsgi Problem ist. – BryceH

Antwort

1

Installieren Sie uwsgi-kaiser über die Paketmanager auch?

Bitte stellen Sie sicher, dass Sie mit korrekten uwsgi verfolgen.

Manchmal installieren uwsgi von pip und apt dieses Problem. Ich selbst ersetze die /usr/bin/uwsgi durch /usr/local/bin/uwsgi in /etc/init.d/uwsgi.

Auch sollten Sie die Pfadberechtigungen und DB-Zugriff überprüfen, wenn vorhanden.

Verwandte Themen