Подтвердить что ты не робот

Flask в uWSGI вызывает 500 Internal Server Error только от импорта SQLAlchemy

Все работает нормально, когда я запускаю колбу через source venv/bin/activate && python run.py.

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)

Но когда я запускаю одно и то же приложение с nginx/emperor.uwsgi, каждое попадание на сервер возвращает 500. Если я закомментирую импорт SQLAlchemy, страница загрузится, как и ожидалось.


Per этот поток Я попытался включить ленивое/ленивое приложение, но оно не имеет никакого эффекта. Flask создает исключение, поэтому nginx/uwsgi ничего не записывает.

Я пробовал использовать from werkzeug.debug import DebuggedApplication, но все же просто получаю абсолютные голые кости "Внутренняя ошибка сервера" в моем браузере.


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

Ничего необычного.


source venv/bin/activate && pip list && deactivate вывод:

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)

Все обычные подозреваемые присутствуют.

Полностью в темноте на этом, кто-нибудь знает, как отлаживать/обрабатывать это?

4b9b3361

Ответ 1

Вы устанавливаете uwsgi-императора через ящик пакета?

Пожалуйста, убедитесь, что вы отслеживаете с правильным uwsgi.

Иногда установка uwsgi из pip и apt делает эту проблему. Я сам заменяю /usr/bin/uwsgi на /usr/local/bin/uwsgi в /etc/init.d/uwsgi.

Также вы должны проверить разрешения пути и доступ к db, если они есть.