根本原因是VSCode与终端使用的Python解释器不一致,需统一sys.executable路径、清除.vscode/settings.json和workspaceStorage缓存、在VSCode终端中用python -m pip重装包,并重启语言服务器。

VSCode 里报 Cannot find module,终端却能跑通?根本不是模块没装
这问题几乎从不因为 pip install 没执行——而是 VSCode 和你终端用的压根不是同一个 Python 解释器。它加载了 /usr/bin/python3、pyenv 的旧版本,或某个虚拟环境被路径缓存“钉死”了,而你在终端里激活的是另一个环境。关键验证动作只有一条:python -c "import sys; print(sys.executable)" 在 VSCode 内置终端里运行,再对比命令面板中 Python: Select Interpreter 显示的路径,二者必须一字不差。
检查 .vscode/settings.json 是否硬编码了失效解释器路径
很多人在调试时手动改过 python.defaultInterpreterPath,后来换环境却忘了删。这个字段一旦存在,就会彻底屏蔽自动探测逻辑,哪怕你选了新解释器也无效。
- 直接删除项目根目录下的
.vscode/settings.json(保留代码,只清配置) - 打开用户设置(
Ctrl+,),搜索python default interpreter,清空python.defaultInterpreterPath字段 - 重启 VSCode,再用
Ctrl+Shift+P → Python: Select Interpreter重新选一次——这次选中的路径会写入工作区.vscode/settings.json,但内容是相对安全的./venv/bin/python或 ID 形式,而非绝对路径
清理 .vscode/workspaceStorage 防止环境元数据错乱
VSCode 会把 Python 环境的 site-packages 路径、包版本、类型提示缓存等写进 .vscode/workspaceStorage/。如果之前用过损坏的解释器或中断过安装,这些缓存可能残留错误映射,导致即使换了解释器,import pandas 仍被判定为“不存在”。
- 完全退出 VSCode
- 删除项目目录下的
.vscode/workspaceStorage文件夹(不是用户级的,是当前工作区的) - 不要删
.vscode/extensions或用户数据目录——那会影响所有项目 - 重开 VSCode,等待 Python 扩展右下角显示解释器路径并完成初始化(状态栏出现“Python Loading…”→消失)
在 VSCode 终端里重装包,别信外部终端
你以为 pip install pandas 装好了?很可能装到了系统 Python 或另一个 venv 里。VSCode 只认它自己加载的那个解释器的 site-packages。
- 打开 VSCode 内置终端(
Terminal → New Terminal) - 执行
python -c "import sys; print(sys.executable); print('\n'.join(sys.path[:3]))",确认前两行输出和解释器路径一致 - 执行
python -m pip install --upgrade pip,再装你需要的包:python -m pip install pandas numpy - 验证安装位置:
python -m pip show pandas | grep "Location",输出的Location必须是上面sys.path列出的路径之一(通常是第二项)
最常被忽略的一点:VSCode 的 Python 扩展不会实时监听 site-packages 变更。装完包后,要么重启窗口,要么在命令面板运行 Python: Restart Language Server,否则“问题”面板里的 Cannot find module 还会挂着不动。


















