执行Django makemigrations命令时遇ModuleNotFoundError问题求助
解决Django makemigrations时的ModuleNotFoundError问题
这个错误的根源其实是个很容易忽略的小细节——你在INSTALLED_APPS配置里漏掉了一个逗号!
看你的配置片段:
INSTALLED_APPS = [ 'idmp_core.apps.IdmpCoreConfig' 'django.contrib.admin', # ... 其他应用
第一行的'idmp_core.apps.IdmpCoreConfig'后面没有加逗号,Python会自动把它和下一行的字符串'django.contrib.admin'拼接在一起,变成了'idmp_core.apps.IdmpCoreConfigdjango.contrib.admin',这就导致Django去寻找一个完全不存在的模块idmp_core.apps.IdmpCoreConfigdjango,自然就抛出了ModuleNotFoundError。
修复步骤:
- 给
INSTALLED_APPS里的'idmp_core.apps.IdmpCoreConfig'末尾加上逗号,修改后的配置应该是:
INSTALLED_APPS = [ 'idmp_core.apps.IdmpCoreConfig', # 这里补上逗号 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', ]
- 可以顺便确认下
idmp_core/apps.py里的配置是否标准,确保IdmpCoreConfig类的定义没问题:
from django.apps import AppConfig class IdmpCoreConfig(AppConfig): default_auto_field = 'django.db.models.BigAutoField' name = 'idmp_core'
- 重新运行
python manage.py makemigrations idmp_core,应该就能正常执行了。
这种小细节在刚接触Python和Django时很容易踩坑,Python的相邻字符串自动拼接特性有时候会带来意想不到的问题,以后配置列表时记得每个元素后面都加上逗号(哪怕是最后一个元素也可以加),能避免不少类似的低级错误。
内容的提问来源于stack exchange,提问作者mathcounterexamples.net
相关产品推荐
相关产品推荐

