django-cors-header出现问题-ModuleNotFoundError:没有名为“ corsheaders”的模块

时间:2018-10-01 05:47:14

标签: python django django-rest-framework django-cors-headers

我正在尝试将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添加到requirements.txt并通过以下方式安装:

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

但是我得到相同的结果。您能提供的任何帮助将不胜感激!这是我第一次使用django,drf或docker进行项目,如果我不是最了解的人,我深表歉意:)

1 个答案:

答案 0 :(得分:2)

docker中缺少cors-header。因此,添加

django-cors-headers

在您的项目的require.txt中。 (运行apt-get update .....)之后,将django-cors-headers依赖项添加到您的Dockerfile中。 现在构建并运行。使用其中一个

docker-compose build
docker-compose up

docker-compose up --build