Django从3.1.2升级到3.2后出现ImproperlyConfigured无法导入api错误如何解决
Django 3.2版本升级ApiConfig报错解决方案
完整报错信息:
django.core.exceptions.ImproperlyConfigured: Cannot import 'api'. Check that 'apps.api.apps.ApiConfig.name' is correct.
该报错是因为Django 3.2对AppConfig的名称校验规则比3.1版本更严格,要求name属性必须是可被Python正常导入的完整包路径,可按以下步骤依次排查解决:
- 校验
apps/api/apps.py内的ApiConfig配置
确保name字段填写完整的导包路径,示例配置如下:
不要仅填写from django.apps import AppConfig class ApiConfig(AppConfig): # 新增3.2要求的默认主键配置,避免后续出现主键类型警告 default_auto_field = 'django.db.models.BigAutoField' name = 'apps.api'name = 'api',否则Django无法从项目根路径定位到api应用。 - 校验
settings.py中INSTALLED_APPS的注册规则
选以下任意一种写法即可:- 注册完整应用路径:
'apps.api' - 直接注册ApiConfig类:
'apps.api.apps.ApiConfig'
如果你需要保留INSTALLED_APPS内仅写'api'的旧写法,需要在settings.py开头将apps目录加入Python导包路径:
对应将import sys from pathlib import Path BASE_DIR = Path(__file__).resolve().parent.parent sys.path.insert(0, str(BASE_DIR / 'apps'))ApiConfig.name改为'api'即可正常运行。 - 注册完整应用路径:
- 校验包文件完整性
检查apps目录、apps/api目录下是否存在__init__.py文件,缺失的话新建空的该文件即可,确保Python将目录识别为可导入的包。
内容的提问来源于stack exchange,提问作者Venus713
相关产品推荐
相关产品推荐

