VSCode报ModuleNotFoundError的根源在于解释器路径不一致、PYTHONPATH未配置及缓存残留。需三步解决:1. 通过Ctrl+Shift+P选择与终端完全一致的解释器路径;2. 在.settings.json中按系统配置PYTHONPATH;3. 清理.vscode/settings.json、workspaceStorage及用户设置中的旧解释器配置并重启。

确认解释器路径是否真正生效
VSCode里报 ModuleNotFoundError,八成不是代码问题,而是编辑器用的 Python 解释器和你终端里运行的不是同一个。比如你在终端执行 python -c "import sys; print(sys.executable)" 输出的是 /path/to/venv/bin/python,但 VSCode 的 interpreter 选的却是 /usr/bin/python3——这就会导致 pip 安装的包在编辑器里“看不见”。
必须做三件事:
- 按
Ctrl+Shift+P输入Python: Select Interpreter,选中和终端输出完全一致的路径 - 如果列表里没有,点
Enter interpreter path...手动填入 - 改完后关掉所有内置终端再重开,否则旧环境变量还在缓存里
配置 PYTHONPATH 让 Pylance 知道模块在哪
Pylance 不会自动把项目根目录加进 sys.path,它只认 PYTHONPATH 和解释器启动时带的路径。跨文件夹 import(比如 from src.utils import helper)失败,基本就是这个原因。
在项目根目录下打开或新建 .vscode/settings.json,写入对应系统的配置:
立即学习“Python免费学习笔记(深入)”;
- macOS/Linux:
"terminal.integrated.env.osx": { "PYTHONPATH": "${workspaceFolder}${pathSeparator}${env:PYTHONPATH}" } - Windows:
"terminal.integrated.env.windows": { "PYTHONPATH": "${workspaceFolder}${pathSeparator}${env:PYTHONPATH}" } - 别用
code-runner.fileDirectoryAsCwd或python.terminal.executeInFileDir,它们只改工作目录,不改模块搜索路径
清理残留设置和缓存
很多导入失败其实是被历史配置拖累的:比如 python.defaultInterpreterPath 指向一个已删的虚拟环境,或者 .vscode/workspaceStorage/ 里存着旧的解析元数据。
直接清掉这些干扰项:
- 删掉项目根目录下的
.vscode/settings.json(代码本身不受影响) - 删掉
.vscode/workspaceStorage/整个文件夹 - 在用户设置里搜
python default interpreter,清空该字段 - 重启 VSCode,再重新选解释器
验证包是否真装在当前解释器下
你以为 pip install requests 成功了,但它可能装进了系统 Python 的 site-packages,而你编辑器用的是 venv 里的解释器。
分两步验证:
- 在 VSCode 内置终端里运行
pip show requests,看Location:是否指向你当前解释器的site-packages - 如果不对,先激活正确环境(
source venv/bin/activate或conda activate myenv),再 pip install - 也可以临时加路径:
python -c "import sys; print([p for p in sys.path if 'site-packages' in p])",确认目标路径是否在其中
路径配置这事没玄学,就三件事:解释器对得上、PYTHONPATH写对位置、缓存清干净。少一个,ModuleNotFoundError 就照常报。


















