Django项目导入Artist模型遇ModuleNotFoundError错误求助
解决Django模型导入的ModuleNotFoundError问题
先确认项目结构
首先得保证你的项目是标准Django结构,大概长这样:
musiclibrary/ musiclibrary/ # 项目配置目录 __init__.py settings.py urls.py song/ # 你的业务app __init__.py models.py # 这里定义了Artist模型 views.py # 你要写查询逻辑的文件 manage.py
修正导入语句
你现在用的from musiclibrary.song.models import Artist路径不对,所以才报找不到模块的错,换下面任意一种正确的导入方式就行:
方式1:直接从app导入(推荐)
只要song已经在settings.py的INSTALLED_APPS里注册过,直接这么写:
from song.models import Artist
方式2:同一app内用相对导入
因为views.py和models.py都在song目录下,用相对导入更简洁:
from .models import Artist
方式3:完整路径导入(确保根目录在Python路径中)
如果一定要用完整路径,注意song是直接在项目根目录下的app,不是musiclibrary的子模块,所以正确写法还是:
from song.models import Artist
检查必要配置
- 确认
song已经加到settings.py的INSTALLED_APPS里:
INSTALLED_APPS = [ # 其他默认app 'song', ]
- 每个目录(
musiclibrary、song)里都要有__init__.py文件(空的也行),Python才会把它当成可导入的包。
最后测试
改完导入语句后,重新跑:
python manage.py runserver
这时候artist_list = Artist.objects.all()就能正常执行了。
内容的提问来源于stack exchange,提问作者Samin Jilani
相关产品推荐
相关产品推荐

