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

VSCode运行Python跨文件夹导入模块报ModuleNotFoundError错误求助

问题原因

你直接运行b.py时,Python会自动将b.py所在的目录Project/src/a/加入模块搜索路径sys.path,而你要导入的C模块存放在Project/src/目录下,该目录不在默认搜索路径中,因此触发ModuleNotFoundError。

解决方案

你可以根据自己的使用场景选择以下任意一种方案解决:

  • 方案1:临时修改模块搜索路径(代码侵入最小,适合单文件快速测试)
    在b.py的导入语句之前加入以下代码,把src目录加到搜索路径中即可:
import sys
from pathlib import Path
# 层级对应:当前文件b.py → 父目录a → 父目录src
sys.path.append(str(Path(__file__).parent.parent.resolve()))
# 之后正常写导入语句即可
from C import d
  • 方案2:修改VSCode运行配置,项目内永久生效(无需修改业务代码)
    如果使用VSCode默认的Python调试运行功能:
  1. 打开运行和调试面板,点击创建launch.json文件,选择对应Python环境
  2. 在launch.json的配置项中新增两个参数:
"cwd": "${workspaceFolder}/src",
"env": {"PYTHONPATH": "${workspaceFolder}/src"}

如果使用Code Runner插件运行,需要修改插件配置:
打开设置搜索Code Runner: Executor Map,点击编辑settings.json,将Python的运行命令修改为:

"python": "cd $dir/../ && /usr/bin/python3 $fileName"
  • 方案3:以模块方式运行脚本(无需修改任何配置和代码)
    不要直接点击运行按钮执行b.py,在VSCode终端切换到Project根目录后,执行以下命令即可:
python -m src.a.b

使用-m参数以模块方式运行时,Python会自动将当前工作目录加入sys.path,你也可以把导入语句调整为from src.C import d适配该运行方式。

内容的提问来源于stack exchange,提问作者G. Pro

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 00:51:00