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

配置DJANGO_SETTINGS_MODULE遇ModuleNotFoundError,求排查方案

解决Django Settings配置错误的问题

看起来你是在直接运行models.py来检查错误,但这不是Django推荐的做法,而且路径配置上也有几个关键点没处理对。咱们一步步来解决:

1. 先回到正确的工作目录

首先确认你的Django项目结构应该是类似这样的(核心是manage.py的位置):

你的项目根目录/
├── project1/          # 存放settings.py的文件夹,这个是Django自动生成的项目包
│   ├── __init__.py    # 这个文件必须存在,否则Python不认它是模块
│   ├── settings.py
│   └── ...
├── 你的app文件夹/
│   ├── models.py
│   └── ...
└── manage.py          # 关键!Django的管理命令入口

你需要切换到包含manage.py的那个项目根目录,这是最关键的一步。之前你设置DJANGO_SETTINGS_MODULE时找不到模块,很大概率是因为你当前的工作目录不在项目根,Python没法找到project1这个模块。

2. 用Django官方的命令检查错误

不要直接运行python models.py check,Django提供了专门的管理命令来做这类检查,在项目根目录下执行:

python manage.py check

这个命令会自动加载project1.settings(因为manage.py里已经帮你配置好了),不需要手动设置环境变量,这也是最省心的做法。

3. 如果一定要手动设置环境变量(不推荐,但可以理解)

如果你因为某些原因必须手动配置,那需要同时做两件事:

  • 把项目根目录添加到Python的搜索路径里,这样Python才能找到project1模块
  • 设置正确的DJANGO_SETTINGS_MODULE

在项目根目录下执行这两条命令:

export PYTHONPATH=$(pwd)
export DJANGO_SETTINGS_MODULE=project1.settings

之后再运行相关检查命令(不过还是优先推荐用manage.py)。

为什么之前的尝试失败?

  • 你用bugstracker(虚拟环境名称)替换project1是不对的:虚拟环境的名称和Django项目的模块名称完全没关系,project1是你创建Django项目时生成的那个包含settings的包名称,和虚拟环境无关。
  • 没把项目根目录加到Python路径:即使你设置了DJANGO_SETTINGS_MODULE,Python如果找不到project1所在的目录,依然会报ModuleNotFoundError。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.09 09:22:40