Модуль 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, поэтому, когда вы входите в систему, он устанавливается глобально и ваш код пытается найти на ВМ, или вы установили в ВМ и ваш Код выглядит глобально.

http://tinystruggles.com/2014/11/16/docker-virtualenv.html

для тех, кто уже установил 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)".

Другие вопросы по тегам