绝大多数情况是Pylance未识别当前解释器的site-packages,需通过“Python: Select Interpreter”选择正确环境,确保右下角路径与终端which python一致,确认pip安装目标与解释器匹配,核对导入名与包名差异,并清除缓存重启语言服务器。

VS Code 无法识别已安装的 Python 第三方库,绝大多数情况不是库没装好,而是 Pylance 没“看见”它——它只认当前激活解释器的 site-packages,且严格按 import 名索引,不认 pip 安装名。
Python: Select Interpreter 选错了环境
Pylance 不会跨环境扫描,它只读取 VS Code 当前选定解释器的包目录。你终端里 pip install requests 成功了,但右下角显示的是 /usr/bin/python3,那 requests 就完全不可见。
- 按
Ctrl+Shift+P(Win/Linux)或Cmd+Shift+P(macOS),输入Python: Select Interpreter,从列表中选明确含目标库的路径,例如./venv/bin/python或C:\project\venv\Scripts\python.exe - 点击右下角 Python 版本号,确认路径和你在终端运行
which python(macOS/Linux)或where python(Windows)输出的一致 - 如果用了
pyenv或conda,务必通过 shell 启动 VS Code(终端执行code .),否则它看不到 shell 初始化后的 PATH 和激活状态
pip 装到了另一个 Python 环境里
你敲了 pip install pandas,但这个 pip 对应的 Python 和 VS Code 用的不是同一个——sys.executable 不同,site-packages 就是两套。
- 在 VS Code 内置终端(
Ctrl+`)中执行:python -c "import sys; print(sys.executable)"和pip --version,二者输出的 Python 路径必须完全一致 - 保险做法:统一用
python -m pip install pandas,避免pip命令被 PATH 中其他版本劫持 - 运行
python -m pip list | grep pandas(Linux/macOS)或python -m pip list | findstr pandas(Windows),确认输出存在且版本正确
导入名 ≠ 包名,Pylance 按 import 名匹配
Pylance 解析的是代码里的 import 语句,不是你 pip install 时的名字。比如装了 python-dotenv,但代码写 import dotenv,它就只找 dotenv 这个模块名。
- 查真实导入名最准的方式:在 Python 交互环境中执行
import pkgutil; [name for _, name, _ in pkgutil.iter_modules() if 'dotenv' in name] - 常见错配:
beautifulsoup4→bs4,scikit-learn→sklearn,Pillow→PIL,python-dateutil→dateutil - 如果仍标红,可临时加注释
# type: ignore(不推荐长期用),或安装类型存根如pip install types-requests
Pylance 缓存/配置干扰了索引
哪怕环境、包、导入名全对,Pylance 也可能因缓存未更新或配置项冲突跳过扫描。
- 删掉项目下的
.vscode/settings.json(尤其要清除python.analysis.extraPaths和硬编码的python.defaultInterpreterPath) - 关闭 VS Code,删除
.vscode/workspaceStorage/整个文件夹(这是 Pylance 存环境元数据的地方) - 重启后,在命令面板运行
Python: Restart Language Server,强制刷新索引 - 避免手动设置
python.analysis.autoSearchPaths为false,默认true才能自动发现site-packages
最容易被忽略的是:你以为 pip 装好了,其实它装给了系统 Python;你以为解释器选对了,其实右下角那个路径是上次残留的旧缓存;你以为 import 名没错,其实 pip show xxx 显示的 Name: 字段和实际 import 名根本不同。三者只要一个没对齐,Pylance 就静默放弃索引——它不会报错,只会让一切看起来“没装”。
Python免费学习笔记(深入):立即使用
在学习笔记中,你将探索 Python 的核心概念和高级技巧!











