Есть ли способ развернуть проект Django на namecheap в режиме ASGI?

Я пытаюсь развернуть свой Django на Namecheap, сервер должен работать, но я получил следующее сообщение traceback:

[ERROR] [UID:12123][2655752] wsgiAppHandler pApp->start_response() return NULL.
Traceback (most recent call last):
  File "/home/alshigpf/website/passenger_wsgi.py", line 41, in __call__
    return self.app(environ, start_response)
TypeError: __call__() missing 1 required positional argument: 'send'
[ERROR] [UID:12123][2655752] wsgiAppHandler pApp->start_response() return NULL.
Traceback (most recent call last):
  File "/home/alshigpf/website/passenger_wsgi.py", line 41, in __call__
    return self.app(environ, start_response)
TypeError: __call__() missing 1 required positional argument: 'send'

Вот как выглядит мой файл passenger_wsgi.py:

import os
import sys
import django

sys.path.append(os.getcwd())
os.environ['DJANGO_SETTINGS_MODULE'] = 'website.settings.development'
django.setup()

SCRIPT_NAME = os.getcwd()
print("Script name: ", SCRIPT_NAME)


class PassengerPathInfoFix(object):
    """
        Sets PATH_INFO from REQUEST_URI because Passenger doesn't provide it.
    """
    def __init__(self, app):
        self.app = app
        print("Start Init")
        print("App is: ", self.app)
        print("End Init")

    def __call__(self, environ, start_response):
        from urllib.parse import unquote
        print("Start Calling")
        environ['SCRIPT_NAME'] = SCRIPT_NAME
        request_uri = unquote(environ['REQUEST_URI'])
        script_name = unquote(environ.get('SCRIPT_NAME', ''))
        offset = request_uri.startswith(script_name) and len(environ['SCRIPT_NAME']) or 0
        environ['PATH_INFO'] = request_uri[offset:].split('?', 1)[0]
        return self.app(environ, start_response)

# Get ASGI application 
from website.routing import application
print("Before calling application")

application = PassengerPathInfoFix(application)

Когда я погуглил, то увидел, что существует нечто под названием "Uvicorn", которое является обновленной версией Gunicorn для работы в режиме ASGI.

Когда я сделал расширенный поиск в google, чтобы посмотреть, говорят ли namecheap.com об использовании uvicorn, я не нашел ничего связанного с этой проблемой.

Итак, мой вопрос: как я могу игнорировать эту проблему, по-прежнему используя режим ASGI вместо WSGI?

Вернуться на верх