Django 3.0.5 с mod_wsgi: AttributeError: у объекта 'HttpResponse' нет атрибута '_resource_closers' - PullRequest
1 голос
/ 18 апреля 2020

Я получаю сообщение об ошибке при развертывании Django 3.0.5 в mod_wsgi: AttributeError: 'HttpResponse' object has no attribute '_resource_closers'. Я бегу:

  • Python: 3,6,8
  • Django: 3,0,5
  • Apache: 2,4,6
  • mod_wsgi: 4.6.2

Вот основы представления, вызывающего ошибку; ничего слишком exoti c (я упростил код вокруг meetings_struct):

class MeetingsAPIView(MeetingsBaseView):
    def get(self, request, *args, **kwargs):
        meetings = self.get_meetings()
        meetings_struct = []

        for meeting in meetings:
            meetings_struct.append({
                "id": meeting.id,
                "name": meeting.title,
                "slug": meeting.slug,
            })

        return HttpResponse(meetings_struct, content_type="application/json")

Если я активирую venv и использую runserver вручную на сервере через порт 80, то же самое просмотр не дает ошибки. Когда тот же код и venv работают под Apache, вот ошибка из журналов Apache:

[Sat Apr 18 16:11:30.683980 2020] [wsgi:error] [pid 4154] [remote 100.19.146.139:54397] mod_wsgi (pid=4154): Exception occurred processing WSGI script '/var/django/sites/mysite-prod/config/wsgi.py'.
[Sat Apr 18 16:11:30.684834 2020] [wsgi:error] [pid 4154] [remote 100.19.146.139:54397] Traceback (most recent call last):
[Sat Apr 18 16:11:30.684891 2020] [wsgi:error] [pid 4154] [remote 100.19.146.139:54397]   File "/var/django/sites/mysite-prod/venv/lib64/python3.6/site-packages/django/core/handlers/wsgi.py", line 133, in __call__
[Sat Apr 18 16:11:30.684903 2020] [wsgi:error] [pid 4154] [remote 100.19.146.139:54397]     response = self.get_response(request)
[Sat Apr 18 16:11:30.684925 2020] [wsgi:error] [pid 4154] [remote 100.19.146.139:54397]   File "/var/django/sites/mysite-prod/venv/lib64/python3.6/site-packages/django/core/handlers/base.py", line 76, in get_response
[Sat Apr 18 16:11:30.684933 2020] [wsgi:error] [pid 4154] [remote 100.19.146.139:54397]     response._resource_closers.append(request.close)
[Sat Apr 18 16:11:30.684964 2020] [wsgi:error] [pid 4154] [remote 100.19.146.139:54397] AttributeError: 'HttpResponse' object has no attribute '_resource_closers'

Я откатился до предыдущей версии, которая работает, работает Django 2,2; остальная часть стека такая же. Это меня озадачило, поскольку я использую тот же развернутый код с тем же venv, который настроен для использования Apache, отлично работает под runserver, но ошибки с mod_wsgi.

я пробовал остановка и запуск Apache, повторный запуск процесса publi sh для fre sh venv и базы кода и даже перезагрузка сервера. Такая же ошибка возникает, но только в Apache / mod_wsgi.

Есть идеи? Я озадачен!

...