VSCode调试Django遇ModuleNotFoundError:找不到core模块
解决Django项目VSCode调试中的模块导入错误
问题根源
- launch.json的PYTHONPATH配置错误:你把PYTHONPATH设成了虚拟环境的python.exe路径,这完全不符合要求——PYTHONPATH是Python用来查找模块的目录路径,而非解释器路径。
- 直接调试volume.py的方式错误:Django项目的脚本必须通过
manage.py启动,单独运行volume.py时,Python会将其所在目录视为顶级包,无法识别上层的core包结构,导致相对导入失败。
修复步骤
1. 修正launch.json的PYTHONPATH配置
将env中的PYTHONPATH改为包含core目录的父目录(即你的Django项目根目录):
{ "version": "0.2.0", "configurations": [ { "name": "Python: Django", "type": "python", "request": "launch", "program": "${workspaceFolder}/Django/manage.py", "args": [ "runserver" ], "django": true, "justMyCode": true, "env": {"PYTHONPATH": "${workspaceFolder}/Django"} } ] }
2. 选择正确的导入方式
绝对导入(推荐,符合Django规范)
在volume.py中保持原导入语句即可,只要PYTHONPATH配置正确,Python就能找到core模块:
import core.backend.sql.subclasses.class1 as class1
相对导入(仅在作为包的一部分运行时有效)
如果想用相对导入,因为volume.py和class1.py在同一目录,可改为:
from . import class1
注意:这种方式仅在通过manage.py启动的Django上下文下有效,不能单独运行volume.py。
3. 确保调试入口正确
必须通过launch.json中配置的manage.py启动调试,不要直接右键运行volume.py。这样Django会自动加载项目的包结构,避免导入错误。
内容的提问来源于stack exchange,提问作者Jojo Ceasar
相关产品推荐
相关产品推荐

