【问题标题】:Django rest framework - problem with set in settings subb app nameDjango rest 框架 - 在设置 subb 应用程序名称中设置的问题
【发布时间】:2022-01-19 07:13:59
【问题描述】:

我遇到了与this question 相同的问题,我们正在做相同的教程 .我正在研究python 3.10.1Django 4.0django rest framework 3.13.0。当我尝试像 Ankit Tiwari 写的那样更改我的类别 apps.py 中的名称时,我收到一个错误:

ImportError: cannot import name '_Descriptor' from 'functools' (C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.10_3.10.496.0_x64__qbz5n2kfra8p0\lib\functools.py)

但是当我像 Jeet Patel 那样尝试时,什么也没有发生

我的应用程序.py

from django.apps import AppConfig


class CategoryConfig(AppConfig):
    default_auto_field = 'django.db.models.BigAutoField'
    name = 'category'

settings.py

INSTALLED_APPS = [
     #other basic install
    'corsheaders',
    'rest_framework',
    'rest_framework.authtoken',
    'api',
    'api.category',
]

我认为这是我设置api.category.name = api.category 时来自_Descriptor 的完整回溯,但如果我错了,我应该粘贴什么? :

Exception in thread django-main-thread:
Traceback (most recent call last):
  File "D:\nauka\lib\site-packages\django\apps\config.py", line 243, in create
    app_module = import_module(app_name)
  File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.10_3.10.496.0_x64__qbz5n2kfra8p0\lib\importlib\__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1050, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1027, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1004, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'category'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.10_3.10.496.0_x64__qbz5n2kfra8p0\lib\threading.py", line 1009, in _bootstrap_inner
    self.run()
  File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.10_3.10.496.0_x64__qbz5n2kfra8p0\lib\threading.py", line 946, in run
    self._target(*self._args, **self._kwargs)
  File "D:\nauka\lib\site-packages\django\utils\autoreload.py", line 64, in wrapper
    fn(*args, **kwargs)
  File "D:\nauka\lib\site-packages\django\core\management\commands\runserver.py", line 115, in inner_run
    autoreload.raise_last_exception()
  File "D:\nauka\lib\site-packages\django\utils\autoreload.py", line 87, in raise_last_exception
    raise _exception[1]
  File "D:\nauka\lib\site-packages\django\core\management\__init__.py", line 381, in execute
  File "D:\nauka\lib\site-packages\django\utils\autoreload.py", line 64, in wrapper
    fn(*args, **kwargs)
  File "D:\nauka\lib\site-packages\django\__init__.py", line 24, in setup
    apps.populate(settings.INSTALLED_APPS)
  File "D:\nauka\lib\site-packages\django\apps\registry.py", line 91, in populate
    app_config = AppConfig.create(entry)
  File "D:\nauka\lib\site-packages\django\apps\config.py", line 245, in create
    raise ImproperlyConfigured(
django.core.exceptions.ImproperlyConfigured: Cannot import 'category'. Check that 'api.category.apps.CategoryConfig.name' is correct.                                                             pps.CategoryConfig.name' is correct.
D:\nauka\src\ecom\api\category\apps.py changed, reloading.
Watching for file changes with StatReloader
Exception in thread django-main-thread:
Traceback (most recent call last):
  File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.10_3.10.496.0_x64__qbz5n2kfra8p0\lib\threading.py", line 1009, in _bootstrap_inner
    self.run()
  File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.10_3.10.496.0_x64__qbz5n2kfra8p0\lib\threading.py", line 946, in run
    self._target(*self._args, **self._kwargs)
  File "D:\nauka\lib\site-packages\django\utils\autoreload.py", line 64, in wrapper
    fn(*args, **kwargs)
  File "D:\nauka\lib\site-packages\django\core\management\commands\runserver.py", line 115, in inner_run
    autoreload.raise_last_exception()
  File "D:\nauka\lib\site-packages\django\utils\autoreload.py", line 87, in raise_last_exception 
    raise _exception[1]
  File "D:\nauka\lib\site-packages\django\core\management\__init__.py", line 381, in execute     
    autoreload.check_errors(django.setup)()
  File "D:\nauka\lib\site-packages\django\utils\autoreload.py", line 64, in wrapper
    fn(*args, **kwargs)
  File "D:\nauka\lib\site-packages\django\__init__.py", line 24, in setup
    apps.populate(settings.INSTALLED_APPS)
  File "D:\nauka\lib\site-packages\django\apps\registry.py", line 114, in populate
    app_config.import_models()
  File "D:\nauka\lib\site-packages\django\apps\config.py", line 300, in import_models
    self.models_module = import_module(models_module_name)
  File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.10_3.10.496.0_x64__qbz5n2kfra8p0\lib\importlib\__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1050, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1027, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 688, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 883, in exec_module
  File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
  File "D:\nauka\src\ecom\api\category\models.py", line 1, in <module>
    from functools import _Descriptor
ImportError: cannot import name '_Descriptor' from 'functools' (C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.10_3.10.496.0_x64__qbz5n2kfra8p0\lib\functools.py)

【问题讨论】:

  • 你能分享你的apps.py和完整的回溯吗?
  • 我编辑了这篇文章。但我和链接的问题完全一样,因为我们正在做同样的教程
  • 当您说第二种解决方案没有任何反应时,您是什么意思?没有错误表明您的应用已成功添加/安装?
  • 链接问题中的相同错误,即:django.core.exceptions.ImproperlyConfigured:无法导入“类别”。检查 'api.category.apps.CategoryConfig.name' 是否正确
  • 您能否将_Descriptor 错误的完整 回溯添加到您的问题中?你的python安装可能有问题?

标签: python django django-rest-framework


【解决方案1】:

CategoryConfig 中的name 应该是api.category

class CategoryConfig(AppConfig):
    default_auto_field = 'django.db.models.BigAutoField'
    name = 'api.category'

【讨论】:

  • 然后我得到:ImportError: cannot import name '_Descriptor' from 'functools' (C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.10_3.10.496.0_x64__qbz5n2kfra8p0\lib\functools.py)
  • File "D:\nauka\src\ecom\api\category\models.py", line 1, in &lt;module&gt; from functools import _Descriptor 你是在models.py 文件中导入_Descriptor 吗?删除导入应该可以解决问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-18
  • 2021-03-27
  • 2016-01-21
  • 2020-09-14
  • 2012-01-18
相关资源
最近更新 更多