uwsgi с менеджером флеш-скриптов - PullRequest
0 голосов
/ 13 ноября 2018

Я использую docker-compose, чтобы связать каждое изображение для запуска один раз.

  • Nginx
  • питон

В python я использовал uwsgi для развертывания веб-сервера фляги.

[manage.py]

import unittest

from app.main import create_app, db
from app.main.model import user
from flask_script import Manager
from app import blueprint

app = create_app(os.getenv('BOILERPLATE_ENV') or 'dev')
app.register_blueprint(blueprint)

app.app_context().push()

manager = Manager(app)

@manager.command
def run():
    app.run(host='0.0.0.0')

@manager.command
def test():
    """Runs the unit tests."""
    tests = unittest.TestLoader().discover('app/test', pattern='test*.py')
    result = unittest.TextTestRunner(verbosity=2).run(tests)
    if result.wasSuccessful():
        return 0
    return 1

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

Как вы знаете, я использую флеш-скрипт-менеджер.

Поэтому, когда я запускаю сервер flaks, команда, как это -> python3 manage.py run

[uwsgi.ini]

[uwsgi]
chdir = /home
http-socket = :5001
chmod-socket = 777
logto = /home/web.log
process = 2
wsgi-file = manage.py
callable = manager
daemonize = /home/uwsgi.log
lazy-apps = true
pyargv = run

Я установил wsgi-file = manage.py и callable = manager.

Также установите pyargv = run на тот же эффект с python3 manage.py run

Но когда я запускаю сервер и получаю доступ к сети, выдается ошибка.

TypeError: __call__() takes from 1 to 2 positional arguments but 3 were given

Полный лог здесь.

root@web_project_dev:/home# uwsgi --ini config/uwsgi.ini
[uWSGI] getting INI configuration from config/uwsgi.ini
root@web_project_dev:/home# tail -f uwsgi.log
*** WARNING: you are running uWSGI as root !!! (use the --uid flag) ***
your server socket listen backlog is limited to 100 connections
your mercy for graceful operations on workers is 60 seconds
mapped 72920 bytes (71 KB) for 1 cores
*** Operational MODE: single process ***
uWSGI running as root, you can use --uid/--gid/--chroot options
*** WARNING: you are running uWSGI as root !!! (use the --uid flag) ***
*** uWSGI is running in multiple interpreter mode ***
spawned uWSGI worker 1 (and the only) (pid: 65, cores: 1)
WSGI app 0 (mountpoint='') ready in 0 seconds on interpreter 0x55588beca210 pid: 65 (default app)
TypeError: __call__() takes from 1 to 2 positional arguments but 3 were given
[pid: 65|app: 0|req: 1/1] 192.168.192.4 () {40 vars in 746 bytes} [Tue Nov 13 05:20:44 2018] GET / => generated 0 bytes in 0 msecs (HTTP/1.0 500) 0 headers in 0 bytes (0 switches on core 0)

Как мне вставить параметр командной строки в uwsgi.ini?

Спасибо.

...