You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django自定义文件导入views/models遇ModuleNotFoundError问题

解决Django应用中导入模块的ModuleNotFoundError问题

问题原因

直接运行tmp_01.py时触发报错,核心原因有两点:

  1. 当前脚本所在的some_app目录不在Python的模块搜索路径(sys.path)中,Python无法识别some_app作为合法模块;
  2. 未初始化Django运行环境,导致Django无法加载项目配置,进而无法正确识别应用内的模型和视图模块。

解决方案

方法一:修改脚本,添加路径配置与Django初始化

修改tmp_01.py,加入Python路径配置和Django环境初始化代码,确保模块能被正确识别:

import sys
import os

# 获取项目根目录(假设tmp_01.py在some_app目录下,上级目录即为项目根目录)
project_root = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.append(project_root)

# 初始化Django环境(替换为你的项目settings模块路径)
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'my_project.settings')
import django
django.setup()

# 正常导入并执行函数
from some_app.views import create_obj
from some_app.models import C1

create_obj()

方法二:通过Django的manage.py执行脚本

如果不想修改脚本,可将tmp_01.py移到项目根目录(与manage.py同目录),然后用以下命令运行:

python manage.py shell < tmp_01.py

关键注意事项

  • 务必将my_project.settings替换为你实际的Django项目配置模块路径(比如你的项目名为blog,则写blog.settings);
  • 确认some_app已经添加到项目settings.py的INSTALLED_APPS列表中,否则Django无法识别该应用模块。

内容的提问来源于stack exchange,提问作者littleNicky

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 01:02:10