Dr_Elvis
@Dr_Elvis

Как запустить flask на сервере?

Привет!
Пытаюсь запустить приложение на Ubuntu.
Исходные данные:
Создал venv, установил туда flask, uwsgi
mainapp.py
from flask import Flask
app = Flask(__name__)

@app.route('/')
def index():
    return 'Bye Bye World!!!'

if __name__ == '__main__':
    app.run()

wsgi.py
from mainapp import app as application

if __name__ == "__main__":
    application.run()

fldk.service
[Unit]
Description=uWSGI instance to serve fldk
After=network.target

[Service]
User=fldk
Group=fldk
WorkingDirectory=/home/fldk
Environment="PATH=/home/fldk/venv/bin"
ExecStart=/home/fldk/venv/bin/uwsgi --ini /home/fldk/venv/fldk.ini

[Install]
WantedBy=multi-user.target

fldk.ini
[uwsgi]
module = wsgi:app
callable = app
master = true
processes = 5
virtualenv = /home/fldk/venv
socket = /home/fldk/venv/fldk.sock
chmod-socket = 666
vacuum = true
die-on-term = true

nginx
server {
    listen 80;
    server_name fldk.ru www.fldk.ru;

    location / {
        include uwsgi_params;
        uwsgi_pass unix:/home/fldk/venv/fldk.sock;
    }
    location /static/ {
        root /home/fldk/venv/;
    }
}

syslog при запуске "systemctl start fldk"
Aug 15 12:14:05 elvis systemd[1]: Started uWSGI instance to serve fldk.
Aug 15 12:14:05 elvis uwsgi[22907]: [uWSGI] getting INI configuration from /home/fldk/venv/fldk.ini
Aug 15 12:14:05 elvis uwsgi[22907]: *** Starting uWSGI 2.0.18 (64bit) on [Thu Aug 15 12:14:05 2019] ***
Aug 15 12:14:05 elvis uwsgi[22907]: compiled with version: 5.4.0 20160609 on 14 August 2019 21:19:18
Aug 15 12:14:05 elvis uwsgi[22907]: os: Linux-2.6.32-042stab127.2 #1 SMP Thu Jan 4 16:41:44 MSK 2018
Aug 15 12:14:05 elvis uwsgi[22907]: nodename: elvis
Aug 15 12:14:05 elvis uwsgi[22907]: machine: x86_64
Aug 15 12:14:05 elvis uwsgi[22907]: clock source: unix
Aug 15 12:14:05 elvis uwsgi[22907]: detected number of CPU cores: 2
Aug 15 12:14:05 elvis uwsgi[22907]: current working directory: /home/fldk
Aug 15 12:14:05 elvis uwsgi[22907]: detected binary path: /home/fldk/venv/bin/uwsgi
Aug 15 12:14:05 elvis uwsgi[22907]: !!! no internal routing support, rebuild with pcre support !!!
Aug 15 12:14:05 elvis uwsgi[22907]: your processes number limit is 514625
Aug 15 12:14:05 elvis uwsgi[22907]: your memory page size is 4096 bytes
Aug 15 12:14:05 elvis uwsgi[22907]: detected max file descriptor number: 1024
Aug 15 12:14:05 elvis uwsgi[22907]: lock engine: pthread robust mutexes
Aug 15 12:14:05 elvis uwsgi[22907]: thunder lock: disabled (you can enable it with --thunder-lock)
Aug 15 12:14:05 elvis uwsgi[22907]: uwsgi socket 0 bound to UNIX address /home/fldk/venv/fldk.sock fd 3
Aug 15 12:14:05 elvis uwsgi[22907]: Python version: 3.7.3 (default, May 12 2019, 23:10:02)  [GCC 5.4.0 20160609]
Aug 15 12:14:05 elvis uwsgi[22907]: PEP 405 virtualenv detected: /home/fldk/venv
Aug 15 12:14:05 elvis uwsgi[22907]: Set PythonHome to /home/fldk/venv
Aug 15 12:14:05 elvis uwsgi[22907]: *** Python threads support is disabled. You can enable it with --enable-threads ***
Aug 15 12:14:05 elvis uwsgi[22907]: Python main interpreter initialized at 0xbe1860
Aug 15 12:14:05 elvis uwsgi[22907]: your server socket listen backlog is limited to 100 connections
Aug 15 12:14:05 elvis uwsgi[22907]: your mercy for graceful operations on workers is 60 seconds
Aug 15 12:14:05 elvis uwsgi[22907]: mapped 437520 bytes (427 KB) for 5 cores
Aug 15 12:14:05 elvis uwsgi[22907]: *** Operational MODE: preforking ***
Aug 15 12:14:05 elvis uwsgi[22907]: ModuleNotFoundError: No module named 'wsgi'
Aug 15 12:14:05 elvis uwsgi[22907]: unable to load app 0 (mountpoint='') (callable not found or import error)
Aug 15 12:14:05 elvis uwsgi[22907]: *** no app loaded. going in full dynamic mode ***
Aug 15 12:14:05 elvis uwsgi[22907]: *** uWSGI is running in multiple interpreter mode ***
Aug 15 12:14:05 elvis uwsgi[22907]: spawned uWSGI master process (pid: 22907)
Aug 15 12:14:05 elvis uwsgi[22907]: spawned uWSGI worker 1 (pid: 22908, cores: 1)
Aug 15 12:14:05 elvis uwsgi[22907]: spawned uWSGI worker 2 (pid: 22909, cores: 1)
Aug 15 12:14:05 elvis uwsgi[22907]: spawned uWSGI worker 3 (pid: 22910, cores: 1)
Aug 15 12:14:05 elvis uwsgi[22907]: spawned uWSGI worker 4 (pid: 22911, cores: 1)
Aug 15 12:14:05 elvis uwsgi[22907]: spawned uWSGI worker 5 (pid: 22912, cores: 1)


В итоге я так понимаю сервер запускается, но при переходе на сайт - "Internal Server Error". Если остановить - 502 ошибка.
Причем если вручную запустить - работает.
python mainapp.py
или
python wsgi.py

В логе смущают 2 строчки, но не пойму почему у меня они.
ModuleNotFoundError: No module named 'wsgi'
Выяснил что это ругается на fldk.ini. Заменял на "uwsgi" - ошибка уходила, но везде в туториалах указан именно wsgi.
unable to load app 0 (mountpoint='') (callable not found or import error)

Это не пойму как исправить. пробовал и переименовывать в файлах py по разному название приложения, пробовал указывать в fldk.ini "callable = app" - не помогает.
  • Вопрос задан
  • 1125 просмотров
Решения вопроса 1
@pcdesign
Попробуйте gunicorn вместо uwsgi.
Имхо, он проще и быстрее.
https://www.digitalocean.com/community/tutorials/h...
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
Платформа НТИ Москва
от 130 000 до 180 000 руб.
До 250 000 руб.
от 120 000 до 180 000 руб.
14 нояб. 2019, в 15:54
30000 руб./за проект
14 нояб. 2019, в 15:42
500 руб./за проект
14 нояб. 2019, в 15:21
10000 руб./за проект