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

如何正确配置DJANGO_SETTINGS_MODULE?绝对路径设置出错求助

Django脚本环境配置问题解答

为什么绝对路径设置会报错?

DJANGO_SETTINGS_MODULE要求的是Python模块路径,而非文件系统的绝对路径。这个模块路径基于Python的sys.path查找机制定位——比如myproject.settings指的是myproject包下的settings模块,Python会在sys.path包含的目录里找myproject文件夹(该文件夹默认带有__init__.py,符合Python包的要求),再从中加载settings.py。

你直接填settings.py的绝对路径时,Python会把这个路径当成模块名去查找,自然找不到对应的模块,所以触发ModuleNotFoundError。

迁移到myproject/scripts目录后的正确配置步骤

当脚本放在myproject/scripts目录时,需要先确保项目根目录被加入Python的查找路径,再设置正确的模块路径:

  1. 添加项目根目录到sys.path
    在脚本开头加入以下代码,让Python能找到myproject包:

    import os
    import sys
    
    # 获取当前脚本所在目录的父目录(即myproject目录),再往上一级就是项目根目录
    project_root = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
    sys.path.append(project_root)
    
  2. 设置DJANGO_SETTINGS_MODULE并初始化Django
    继续使用myproject.settings作为变量值,再初始化Django环境:

    os.environ.setdefault("DJANGO_SETTINGS_MODULE", "myproject.settings")
    import django
    django.setup()
    

额外建议

如果你的脚本是用于执行Django相关任务,更规范的做法是编写Django自定义命令(放在myproject/[app名]/management/commands目录下),这样可以直接通过python manage.py [命令名]执行,无需手动配置环境变量和路径,完全复用Django的现有环境。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 12:21:03