Проблема с django-cors-header - ModuleNotFoundError: нет модуля с именем 'corsheaders' - PullRequest
0 голосов
/ 01 октября 2018

Я пытаюсь добавить библиотеку Django-Cors-Headers в мой проект Django REST Framework, который является Dockerized.Запуск моего проекта работает нормально без библиотеки, но после того, как я добавлю его, следуя документации на django-cors-headers github - в частности:

Установка из pip:

pip install django-cors-headers

(Хотя в моем случае, так как он докернизирован, я сделал:)

docker-compose run --rm web pip install django-cors-headers

, а затем добавил его в установленные приложения:

INSTALLED_APPS = (
    ...
    'corsheaders',
    ...
)

Вам также необходимо добавитькласс промежуточного программного обеспечения для прослушивания ответов:

MIDDLEWARE = [
    ...
    'corsheaders.middleware.CorsMiddleware',
    'django.middleware.common.CommonMiddleware',
    ...
]

Хорошо, поэтому, зная все это, я запускаю:

docker-compose up

, который по существу просто ждет postgres, мигрирует и затемзапускает сервер.

Вот моя трассировка стека:

Traceback (most recent call last):
  File "./manage.py", line 24, in <module>
    execute_from_command_line(sys.argv)
  File "/usr/local/lib/python3.6/site-packages/django/core/management/__init__.py", line 371, in execute_from_command_line
    utility.execute()
  File "/usr/local/lib/python3.6/site-packages/django/core/management/__init__.py", line 347, in execute
    django.setup()
  File "/usr/local/lib/python3.6/site-packages/django/__init__.py", line 24, in setup
    apps.populate(settings.INSTALLED_APPS)
  File "/usr/local/lib/python3.6/site-packages/django/apps/registry.py", line 89, in populate
    app_config = AppConfig.create(entry)
  File "/usr/local/lib/python3.6/site-packages/django/apps/config.py", line 90, in create
    module = import_module(entry)
  File "/usr/local/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 953, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'corsheaders'

Я также попытался добавить django-cors-headers == 2.40 в файл require.txt и установить через:

docker-compose run --rm web pip install -r requirements.txt

но я получаю тот же результат.Любая помощь, которую вы можете предложить, будет принята с благодарностью!Я впервые делаю проект с использованием django, drf или docker, поэтому извиняюсь, если я не самый знающий:)

1 Ответ

0 голосов
/ 01 октября 2018

В вашем докере отсутствует cors-header.Так что добавьте

django-cors-headers

в ваш require.txt вашего проекта.добавьте зависимости django-cors-headers в ваш Dockerfile после (RUN apt-get update .....).сейчас строим и запускаем.Используя

docker-compose build
docker-compose up

или

docker-compose up --build
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...