Модуль Django WhiteNoise не найден
Я использую Docker для развертывания своего приложения и по какой-то причине каждый раз, когда мой сервер Django продолжает возвращать следующую ошибку: ImportError: No module named 'whitenoise'
, хотя он говорит, что модуль уже установлен: Requirement already satisfied: whitenoise in /usr/local/lib/python3.5/dist-packages (3.3.1)
,
Любая помощь по этому вопросу с благодарностью.
3 ответа
Вы устанавливаете не в том месте... вероятно, вы забываете создавать / устанавливать / активировать свой virtualenv в вашем контейнере Docker, поэтому, когда вы входите в систему, он устанавливается глобально и ваш код пытается найти на ВМ, или вы установили в ВМ и ваш Код выглядит глобально.
для тех, кто уже установил whitenoise с помощью pip.
шаг - 1: проверьте, добавлены ли промежуточные программы в settings.py
"django.middleware.security.SecurityMiddleware",
"whitenoise.middleware.WhiteNoiseMiddleware",
шаг 2:
WhiteNoise поставляется с серверной частью хранилища, которая автоматически сжимает ваши файлы и создает уникальные имена для каждой версии, чтобы их можно было безопасно кэшировать навсегда. Чтобы использовать его, просто добавьте это в свой settings.py:
STATICFILES_STORAGE = "whitenoise.storage.CompressedManifestStaticFilesStorage"
или же
Это сочетает в себе автоматическое сжатие с поведением кэширования, предоставляемым бэкэндом ManifestStaticFilesStorage Django. Если вы хотите применить сжатие, но не хотите кэширования, вы можете использовать:
STATICFILES_STORAGE = "whitenoise.storage.CompressedStaticFilesStorage"
обратитесь к документации: https://whitenoise.evans.io/en/stable/django.html
Если вы используете Django==2.0 и Python >=3.5, вы должны установить whitenoise==3.3.1. Итак, в wsgi.py вы можете использовать "application = DjangoWhiteNoise(application)".