Django执行makemigrations报错:No module named 'musicapp'
解决Django执行
makemigrations时的ModuleNotFoundError: No module named 'musicapp'问题 以下是针对性的排查和修复步骤:
检查应用目录结构
确保musicapp是标准的Django应用目录,必须包含空的__init__.py文件(没有就新建一个),目录结构要和项目根目录、manage.py的位置对应:项目根目录/ manage.py musicapp/ __init__.py apps.py models.py admin.py ... 项目配置文件夹/ settings.py urls.py ...修正
apps.py配置
打开musicapp/apps.py,确保AppConfig子类的name属性值为小写的musicapp,这是Django识别应用的核心标识,示例代码:from django.apps import AppConfig class MusicappConfig(AppConfig): default_auto_field = 'django.db.models.BigAutoField' name = 'musicapp' # 必须和应用目录名完全一致修正
settings.py的INSTALLED_APPS
在项目配置的settings.py中,将应用添加到INSTALLED_APPS列表时,使用以下两种正确写法之一:INSTALLED_APPS = [ # 其他应用... 'musicapp', # 直接写应用目录名 # 或者用完整的Config类路径 # 'musicapp.apps.MusicappConfig', ]注意不要写成
'Musicapp'(首字母大写),必须和apps.py里的name值一致。确保在正确路径下执行命令
打开终端,切换到**manage.py所在的项目根目录**,再执行:python manage.py makemigrations不要在子目录(比如
musicapp文件夹内)执行该命令。彻底清理缓存
除了删除__pycache__文件夹,还要:- 删除项目根目录下的
migrations文件夹(如果里面的迁移文件已失效) - 执行
python manage.py clearcache(Django 4.2及以上版本支持)
- 删除项目根目录下的
内容的提问来源于stack exchange,提问作者Immanuelblaze
相关产品推荐
相关产品推荐

