Python 3.6 веб-Sanic + uwsgi

я пытаюсь заставить мое веб-приложение sanic работать с uwsgi, и вот что я делаю:

Вызов моего файла uwsgi.ini:

uwsgi uwsgi.ini

содержание:

[uwsgi]
http = :8001
wsgi-file = wsgi.py
asyncio  = 10

wsgi.py:

from app import app as application

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

app.py:

import asyncio
import uvloop

asyncio.set_event_loop_policy(uvloop.EventLoopPolicy())

from sanic import Sanic
from sanic.response import json

app = Sanic(__name__)

@app.route("/")
async def test(request):
    return json({"foo": "bar"})

Когда я запрашиваю его, я получаю:

TypeError: __call__() takes 1 positional argument but 3 were given

я проверил документы uwsgi и Sanic, но смог найти какую-нибудь подсказку... может ли кто-нибудь помочь мне с этой проблемой? спасибо и привет!


person Creative crypter    schedule 08.10.2017    source источник


Ответы (1)


Насколько я помню, sanic еще не совместим с WSGI Сделайте sanic WSGI-совместимым. № 250.

Однако вы можете запустить его с помощью gunicorn, например:

gunicorn myapp:app --bind 0.0.0.0:8080 --worker-class sanic.worker.GunicornWorker

Вы также можете увеличить количество рабочих процессов Sanic для работы на нескольких ядрах ЦП:

app.run(host='0.0.0.0', port=1337, workers=4)

Следуйте этому руководству: Развертывание

person Christo Goosen    schedule 13.03.2018