导入错误django corsheaders

she*_*eer 24 python django amazon-ec2 django-cors-headers

我是django的初学者.我正在做基于它的项目.项目有两个阶段.我完成了第一阶段并将代码上传到amazon ec2实例.在完成第二阶段后,我加入一些包等python-social-auth,django-cors-headers,django-easy-maps,crispyforms.但是现在它显示了corsheaders的导入错误,这个我已经检查了虚拟环境和corsheaders包的追溯

Traceback (most recent call last):
File "manage.py", line 10, in <module>
execute_from_command_line(sys.argv)
File "/usr/local/lib/python2.7/dist-packages/django/core/management/__init__.py", line 399, in execute_from_command_line
utility.execute()
File "/usr/local/lib/python2.7/dist-packages/django/core/management/__init__.py", line 392, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/usr/local/lib/python2.7/dist-packages/django/core/management/base.py", line 242, in run_from_argv
self.execute(*args, **options.__dict__)
File "/usr/local/lib/python2.7/dist-packages/django/core/management/base.py", line 280, in execute
translation.activate('en-us')
File "/usr/local/lib/python2.7/dist-packages/django/utils/translation/__init__.py", line 130, in activate
return _trans.activate(language)
File "/usr/local/lib/python2.7/dist-packages/django/utils/translation/trans_real.py", line 188, in activate
_active.value = translation(language)
File "/usr/local/lib/python2.7/dist-packages/django/utils/translation/trans_real.py", line 177, in translation
default_translation = _fetch(settings.LANGUAGE_CODE)
File "/usr/local/lib/python2.7/dist-packages/django/utils/translation/trans_real.py", line 159, in _fetch
app = import_module(appname)
File "/usr/local/lib/python2.7/dist-packages/django/utils/importlib.py", line 40, in import_module
__import__(name)
ImportError: No module named corsheaders
Run Code Online (Sandbox Code Playgroud)

请给我任何建议

Raf*_*rzo 78

使用pip:

pip install django-cors-headers
Run Code Online (Sandbox Code Playgroud)

使用pipenv:

pipenv install django-cors-headers
Run Code Online (Sandbox Code Playgroud)

  • 对于Python 2.*,它可以是:**pip2安装django-cors-headers**取决于你的os + python设置 (2认同)

Eli*_*ado 9

步骤1.安装corsheaders:

python -m pip install django-cors-headers
Run Code Online (Sandbox Code Playgroud)

步骤 2. 将 cors-headers 添加到 INSTALLED_APPS:

INSTALLED_APPS = (
    ...
    'corsheaders',
    ...
)
Run Code Online (Sandbox Code Playgroud)

步骤 3. 添加 Cors headers 中间件:

MIDDLEWARE = [
    ...,
    'corsheaders.middleware.CorsMiddleware',
    'django.middleware.common.CommonMiddleware',
    ...,
]
Run Code Online (Sandbox Code Playgroud)

注意:请记住,您应该将其放置CorsMiddleware得尽可能高,以免被其他中间件覆盖或由其他中间件引起的任何行为。

步骤 4. 在以下位置添加 cors 标头settings.py

CORS_ALLOWED_ORIGINS = [
    'http://127.0.0.1:3000',
    'http://localhost:3030',
    'yoursite.com'
]
Run Code Online (Sandbox Code Playgroud)

或者

CORS_ORIGIN_WHITELIST = [
    'http://127.0.0.1:3000',
    'http://localhost:4200',
    'yoursite.com'
]
Run Code Online (Sandbox Code Playgroud)

注意:还要检查您请求的端点是否在CORS_ALLOWED_ORIGINS. 另外,避免'*'在同一变量中使用,以避免任何安全漏洞。

请检查其文档,其中有更多详细信息和链接可以解决您的一些问题:

https://github.com/adamchainz/django-cors-headers#setup


小智 5

尝试这个。

pip install --user django-cors-headers
Run Code Online (Sandbox Code Playgroud)


avi*_*avi -3

从您的回溯来看,您似乎没有在虚拟环境中运行 Django 应用程序。你可以做两件事:

  1. 在系统范围内安装django-corsheaders,以便您的应用程序可以使用它,无论是否有虚拟环境

  2. 或者您激活虚拟环境并运行 django 应用程序(因为您已经确认已django-corsheaders安装在虚拟环境中。)