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

Django执行makemigrations报错:No module named 'local_settings'

解决Django导入local_settings模块失败的问题

问题分析与修复步骤

1. 修正导入方式(核心问题)

你当前使用的是绝对导入from local_settings import *,但Python在Django运行环境下,可能不会将settings.py所在的目录优先加入模块搜索路径。改为相对导入即可解决:

# Set DEBUG based on the environment
DEBUG = True
if DEBUG:
    from .local_settings import *  # 前缀"."表示当前目录下的模块
else:
    from .production_settings import *  # 注意:你代码里写的是prod_settings,但实际文件名是production_settings.py,必须统一

2. 统一文件名与导入语句

你的代码中生产环境导入的是prod_settings,但实际文件名为production_settings.py,这会导致生产环境运行时同样出现模块找不到的错误,必须将两者统一:

  • 要么把文件名改为prod_settings.py
  • 要么把导入语句改为from .production_settings import *

3. 检查文件名拼写与大小写

确认local_settings.py的拼写完全正确,无字母遗漏或大小写错误(Linux/macOS系统严格区分文件名大小写,比如Local_Settings.py和local_settings.py会被识别为不同文件)。

4. 显式指定settings模块运行命令

如果你的项目结构特殊,运行manage.py时需要显式指定settings模块路径:

./manage.py makemigrations --settings=你的项目名称.settings

5. 强制将当前目录加入Python搜索路径

如果以上方法都无效,可以在settings.py开头添加以下代码,确保Python能找到同目录下的模块:

import os
import sys
# 将settings.py所在目录加入Python模块搜索路径
sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 20:27:16