Trouble with django-cors-header - ModuleNotFoundError: No module named 'corsheaders'
Trouble with django-cors-header - ModuleNotFoundError: No module named 'corsheaders'
我正在尝试将 Django-Cors-Headers 库添加到我的 Django REST Framework 项目中,该项目已 Dockerized。 运行 我的项目在没有库的情况下工作正常,但在我按照 django-cors-headers github 上的文档添加它之后 - 特别是:
从 pip 安装:
pip install django-cors-headers
(尽管就我而言,因为它是 docker 化的,所以我做了:)
docker-compose run --rm web pip install django-cors-headers
然后将其添加到您安装的应用程序中:
INSTALLED_APPS = (
...
'corsheaders',
...
)
您还需要添加一个中间件 class 来监听响应:
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 做项目,如果我不是最有见识的,请见谅 :)
你缺少 cors-header docker。所以添加
django-cors-headers
在您的 requirement.txt 项目中。在 (运行 apt-get update .....) 之后将 django-cors-headers 依赖项添加到您的 Dockerfile。
现在构建 运行。使用任一
docker-compose build
docker-compose up
或
docker-compose up --build
我正在尝试将 Django-Cors-Headers 库添加到我的 Django REST Framework 项目中,该项目已 Dockerized。 运行 我的项目在没有库的情况下工作正常,但在我按照 django-cors-headers github 上的文档添加它之后 - 特别是:
从 pip 安装:
pip install django-cors-headers
(尽管就我而言,因为它是 docker 化的,所以我做了:)
docker-compose run --rm web pip install django-cors-headers
然后将其添加到您安装的应用程序中:
INSTALLED_APPS = (
...
'corsheaders',
...
)
您还需要添加一个中间件 class 来监听响应:
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 做项目,如果我不是最有见识的,请见谅 :)
你缺少 cors-header docker。所以添加
django-cors-headers
在您的 requirement.txt 项目中。在 (运行 apt-get update .....) 之后将 django-cors-headers 依赖项添加到您的 Dockerfile。 现在构建 运行。使用任一
docker-compose build
docker-compose up
或
docker-compose up --build