Django运行manage.py check报No module named 'classroom'错误如何排查
故障排查步骤
- 修正文件命名错误
你提供的目录结构中,内层codex目录下的wsgi文件后缀为wsgi.pyt,多了多余的t字符,需修正为wsgi.py。该错误会导致Python无法正常识别内层codex为合法包,连带无法找到同层级的classroom应用。 - 确认命令执行目录
必须在外层codex目录(manage.py所在目录)执行所有manage.py相关命令,若当前工作目录为内层codex目录,Python导包路径不会自动包含外层目录,会触发模块找不到错误。 - 验证包合法性
检查内层codex目录下的__init__.py是否存在、无语法错误,若该文件被误改或删除,会导致内层codex目录不被识别为Python包,无法索引到下属的classroom应用。 - 调整应用注册路径
由于classroom应用位于内层codex目录下,若未手动配置导包路径,需将INSTALLED_APPS中的classroom修改为codex.classroom,同时同步修改根urls.py中引入classroom路由的语句,示例:# 原来的写法 # path('', include('classroom.urls')) # 修改为 path('', include('codex.classroom.urls')) - 检查运行环境一致性
确认当前执行命令的Python虚拟环境,和之前项目正常运行时使用的环境一致,环境切换会导致导包路径配置丢失。 - 清理缓存文件
删除项目下所有__pycache__目录、以及废弃的迁移缓存文件后,重新执行manage.py check测试。 - 核实自定义路径配置
检查manage.py、settings.py中是否有手动修改sys.path的代码,若该部分代码被误删,会导致自定义导包路径失效。
内容的提问来源于stack exchange,提问作者Matthew Tomsho
相关产品推荐
相关产品推荐

