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

Django执行自定义命令时遇ModuleNotFoundError问题求助

解决ModuleNotFoundError: No module named 'university'问题

先确认目录结构与必要文件

你的目录结构应该如下:

assessments/
└── university/
    ├── models/
    │   ├── __init__.py
    │   ├── University.py
    │   ├── TeacherDegree.py
    │   └── Teacher.py
    └── commands/
        ├── __init__.py
        └── create_university.py
  • 确保models、commands子目录下都存在__init__.py文件(空文件即可),Python依赖这个文件识别目录为可导入的包。
  • 如果模型类分别放在models下的单独文件中,需要在models/__init__.py中导出这些类,示例代码:
    from .University import University
    from .TeacherDegree import TeacherDegree
    from .Teacher import Teacher
    

三种解决导入报错的方法

方法1:使用相对导入

修改create_university.py中的导入语句为相对路径:

from ..models import University, TeacherDegree, Teacher

注意:这种方式不能直接运行create_university.py(如python create_university.py),需从assessments目录下以模块方式运行:

python -m university.commands.create_university

方法2:手动添加模块搜索路径

在create_university.py的最顶部添加代码,将assessments目录加入Python的模块搜索路径:

import sys
import os

# 获取当前脚本所在目录,向上两级定位到assessments目录
sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '../../')))

# 之后可正常使用原导入语句
from university.models import University, TeacherDegree, Teacher

修改完成后,直接运行create_university.py即可生效。

方法3:切换工作目录后运行

打开终端,切换到assessments目录下再执行脚本:

cd assessments
python university/commands/create_university.py

此时Python会将当前工作目录(assessments)加入搜索路径,自然能找到university包。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 03:45:41