django.urls、django rest 和 django-cors-headers - 导入问题
Posted
技术标签:
【中文标题】django.urls、django rest 和 django-cors-headers - 导入问题【英文标题】:django.urls, django rest and django-cors-headers - trouble with imports 【发布时间】:2021-05-24 11:54:46 【问题描述】:(注意:django-cors-headers 的问题已解决 - 我只是在 settings.py 文件中的 INSTALLED_APPS 中缺少一个逗号)
当我激活我的虚拟环境和我写这个命令时 -
pip list
结果是 -
asgiref 3.3.1
Django 3.1.6
django-cors-headers 3.7.0
djangorestframework 3.12.2
pip 21.0.1
pytz 2021.1
setuptools 52.0.0
sqlparse 0.4.1
wheel 0.36.2
但我仍然收到错误,如下所列 -
在 urls.py 文件中 -
No name 'path' in module 'django.urls'
No name 'include' in module 'django.urls'
在views.py文件中-
Unable to import 'rest_framework.decorators'
Unable to import 'rest_framework.response'
可以在这篇文章中找到错误来自的文件的完整代码 - A large number of problems with React, Django, Django REST and Axios
(以下问题(关于 django-cors-headers)已解决)
当我尝试运行时 -
python manage.py makemigrations
我收到以下错误 -
ModuleNotFoundError: No module named 'corsheadersbase'
但是我已经安装了 django-cors-headers 并且我已经将它实现到了 settings.py 正如这里建议的那样 - https://pypi.org/project/django-cors-headers/
settings.py 代码的相关部分-
INSTALLED_APPS = [
...
'rest_framework',
'corsheaders',
...
]
MIDDLEWARE = [
'corsheaders.middleware.CorsMiddleware',
...
]
CORS_ALLOW_ALL_ORIGINS = True
解决这些小错误对我真的很有帮助。有人可以给我一些提示吗? 非常感谢您。
【问题讨论】:
我能看到的唯一原因是您正在运行的manage.py
正在获取wrong python executable
,检查安装的python 版本并使用正确的版本运行manage.py
,可能是python3 manage.py XXX
与对应于您的应用程序或检查manage.py
文件中的shebang
我的全局python版本是3.8.5,和虚拟环境中的版本一样。运行这个特定版本的命令会是什么样子?很抱歉,但我不确定 shebang 是什么。
#!/usr/bin/python3
in manage.py 我相信您只有在激活 virtualenv 后才运行 manage.py 命令
我明白了。这是 manage.py 文件的第一行。你是对的。当谈到 django 时,我总是使用虚拟环境。
您是否也通过在虚拟环境中打开 python shell 来测试导入?
【参考方案1】:
您必须将这些库添加到 settings.py 文件中的 INSTALLED_APPS
INSTALLED_APPS = [
'corsheaders',
'rest_framework',
...
]
【讨论】:
我这样做了 - 我正在引用 settings.py 文件作为被照顾。以上是关于django.urls、django rest 和 django-cors-headers - 导入问题的主要内容,如果未能解决你的问题,请参考以下文章
django.urls.exceptions.NoReverseMatch 基于类的列表视图