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

PyCharm中Jupyter调用Django报ImportError: No module named 'local_settings'

解决PyCharm中Jupyter Notebook导入Django local_settings的问题

我一眼就揪出问题根源了——你在设置DJANGO_SETTINGS_MODULE的时候犯了个很容易忽略的小错误:把模块名写成了带.py后缀的文件名,这直接导致了ImportError。

第一步:修正DJANGO_SETTINGS_MODULE的核心错误

你的代码里这一行:

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "local_settings.py")

必须改成不带.py后缀的模块名称:

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "local_settings")

Django遵循Python的模块导入规则,只识别模块名(也就是去掉后缀的文件名),你加了.py之后,Python会误以为要找一个叫local_settings.py的模块,自然找不到对应的文件。

第二步:确认项目路径在Python搜索范围内

虽然你已经把项目路径加入了sys.path,但还是要验证一下路径是否正确。你可以在代码里加一行打印,确认项目根目录(包含manage.py的那个目录)确实在Python的搜索路径里:

import sys
print(sys.path)

如果输出里没有你的项目根目录,就调整MYPROJECT的路径,确保它指向包含local_settings.py的父目录。

第三步:检查目录的Python包属性

你的local_settings.py和主settings.py在同一个目录下,且用了相对导入from .settings import *,这要求该目录是一个合法的Python包——也就是目录里必须有一个空的__init__.py文件。如果没有,直接创建一个空文件就行。

验证修改后的完整代码

调整后的代码应该是这样的,你可以直接测试:

import os, sys
import dateutil.parser
import django
# 确保这里是包含manage.py的项目根目录的绝对路径
MYPROJECT = '/full/absolute/path/to/your/django/project'
sys.path.insert(0, MYPROJECT)
# 去掉.py后缀,只保留模块名
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "local_settings")
django.setup()

# 测试是否能正常读取设置
from django.conf import settings
print(settings.DEBUG)  # 应该输出你在local_settings里设置的True

这样修改后,导入错误应该就能解决了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 09:32:03