Django, gunicorn, nginx throws 504 Тайм-аут шлюза: AttributeError: модуль «static» не имеет атрибута «Cling» - PullRequest
0 голосов
/ 16 февраля 2019

вчера я развернул новую версию своего маленького веб-сайта в сети и сразу же получил ошибку тайм-аута шлюза 504.

После некоторых копаний в файлах журнала я обнаружил следующую ошибку:


File "/home/dev/venuepark/ENV/lib/python3.6/site-packages/django/utils/autoreload.py", line 225, in wrapper
    fn(*args, **kwargs)
  File "/home/dev/venuepark/ENV/lib/python3.6/site-packages/django/core/management/commands/runserver.py", line 137, in inner_run
    handler = self.get_handler(*args, **options)
  File "/home/dev/venuepark/ENV/lib/python3.6/site-packages/django/contrib/staticfiles/management/commands/runserver.py", line 27, in get_handler
    handler = super().get_handler(*args, **options)
  File "/home/dev/venuepark/ENV/lib/python3.6/site-packages/django/core/management/commands/runserver.py", line 64, in get_handler
    return get_internal_wsgi_application()
  File "/home/dev/venuepark/ENV/lib/python3.6/site-packages/django/core/servers/basehttp.py", line 44, in get_internal_wsgi_application
    return import_string(app_path)
  File "/home/dev/venuepark/ENV/lib/python3.6/site-packages/django/utils/module_loading.py", line 17, in import_string
    module = import_module(module_path)
  File "/usr/lib/python3.6/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 994, in _gcd_import
  File "<frozen importlib._bootstrap>", line 971, in _find_and_load
  File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 665, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 678, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "/home/dev/venuepark/venuepark/venuepark/wsgi.py", line 17, in <module>
    application = Cling(MediaCling(get_wsgi_application()))
  File "/home/dev/venuepark/ENV/lib/python3.6/site-packages/dj_static.py", line 97, in __init__
    super(MediaCling, self).__init__(application, base_dir=base_dir)
  File "/home/dev/venuepark/ENV/lib/python3.6/site-packages/dj_static.py", line 48, in __init__
    self.cling = static.Cling(base_dir)
AttributeError: module 'static' has no attribute 'Cling'

my wsgi.py:


import os

from django.core.wsgi import get_wsgi_application
from dj_static import Cling, MediaCling

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'venuepark.config.settings.production_settings')

application = Cling(MediaCling(get_wsgi_application()))

, но dj-static установлен правильно.

Что может вызвать эту проблему?Заранее спасибо

РЕДАКТИРОВАТЬ:

Когда я запускаю производственные настройки локально, все работает нормально.Но когда я пытаюсь запустить их на производственном сервере (не с gunicorn, а с собственным сервером запуска django), я получаю ту же ошибку, что и в журналах ошибок gunicorn (см. Ошибку выше).

Я также запускаю локальные настройки, и они также вызывают ошибку выше.

РЕДАКТИРОВАТЬ 2: Я создал новую среду и переустановил файлы требованийи ошибка все еще существует.AttributeError: module 'static' has no attribute 'Cling'

1 Ответ

0 голосов
/ 16 февраля 2019

Проверьте еще раз создание вашей среды:

mkdir /tmp/djstatic && cd /tmp/djstatic
pipenv install django dj_static
pipenv run python -c "from dj_static import Cling"

Это должно работать.

Полагаю, вы используете pipenv для создания среды проекта.

...