Django项目目录下脚本无法导入项目模块,报ModuleNotFoundError
Django脚本无法导入项目settings的解决方法
问题原因
Python的模块搜索路径(sys.path)默认不包含你的项目根目录,导致无法识别<project_name>作为可导入模块;另外你代码里存在笔误:app_setttings多写了一个t,即使导入成功后续也会报错。
解决方案
1. 手动添加项目路径到sys.path
在脚本最开头添加以下代码,把项目根目录加入Python的模块搜索路径:
import sys import os # 获取当前脚本所在的项目根目录绝对路径 project_root = os.path.dirname(os.path.abspath(__file__)) sys.path.append(project_root) # 之后正常导入settings import <project_name>.settings as app_settings import django settings.configure( INSTALLED_APPS=app_settings.INSTALLED_APPS, DATABASES=app_settings.DATABASES # 注意修正笔误 ) django.setup()
2. 使用Django官方推荐的初始化方式(更简洁)
直接通过设置环境变量让Django自动加载settings,无需手动配置:
import os import django # 指向你的项目settings模块 os.environ.setdefault('DJANGO_SETTINGS_MODULE', '<project_name>.settings') django.setup() # 现在可以直接导入模型 from <app_name>.models import ...
3. 确保运行脚本的工作目录正确
在命令行中切换到项目根目录后再运行脚本:
cd /path/to/your/project-directory python your_script.py
内容的提问来源于stack exchange,提问作者Mr T
相关产品推荐
相关产品推荐

