vscode python智能提示和文档预览需同时正确配置解释器路径、语言服务器(pylance)及索引范围:须选择虚拟环境解释器,设"python.languageserver": "pylance"并禁用jedi,安装对应stubs,启用hover和links,且确保包含完整docstring。

VSCode 的 Python 智能提示和文档预览不是装完插件就自动好使的——它依赖解释器路径、语言服务器选择、索引范围三者同时对齐,缺一不可。
确认 Python 解释器路径是否指向真实虚拟环境
智能提示失效最常见的原因是 python.defaultInterpreterPath 指向了系统 Python(如 /usr/bin/python3)或空值,而不是你项目实际用的 venv 或 conda 环境。
- 按
Ctrl+Shift+P→ 输入Python: Select Interpreter→ 从列表中选带./venv/bin/python或env/Scripts/python.exe路径的项 - 如果列表为空,先在终端激活你的虚拟环境,再运行
which python(macOS/Linux)或where python(Windows),把输出路径粘贴进settings.json中的python.defaultInterpreterPath - 右下角状态栏必须显示为
Python 3.x.x ('venv': venv),不能是Plain Text或Python(无括号说明)
强制启用 Pylance 并关闭 Jedi
Pylance 是当前唯一稳定支持类型提示、文档字符串实时预览和跨文件跳转的语言服务器;Jedi 在较新版本中已逐步弃用,且对 numpy、torch 等带 C 扩展的包解析极弱。
SkillSub Pro - Python 题解与代码注释双功能技能功能概述SkillSub Pro - Python 题解与代码注释双功能技能是一项面向实际任务的技能,主要用于SkillSub Pro 是一个 Python 题解生成与代码注释的 双功能合体技能 ,专为学生、算法学习者和开发者设计;✅ 一个技能,两种用途 :;核心要点📝 题解模式 :输入题目/题号,自动生成完整 Python 题解(含详细注释、解题思路、复杂度分析);💬 注释模式 :输入 Python 代码,自动添加详细中。它将相关步骤、
- 在
settings.json中确保有:"python.languageServer": "Pylance" - 禁用 Jedi:
"python.jediEnabled": false(不加这句,Pylance 可能被降级为备用) - 重启 VSCode 后,打开任意
.py文件,在右下角点击语言模式 → 选Python→ 观察状态栏是否出现Pylance字样
让第三方库(如 numpy、pandas)也能提示和预览文档
Pylance 默认只索引标准库和 site-packages 中的纯 Python 包。像 numpy 这类含 C 扩展的库,需要额外提供 stubs 或显式声明路径。
- 优先安装官方 stubs:
pip install numpy-stubs pandas-stubs(注意:不要用numpy-stubs旧版,需 ≥ 1.26.0) - 若仍不提示,检查
python.autoComplete.extraPaths是否多余——Pylance 不读这个配置,设了反而可能干扰;真正有效的是python.analysis.extraPaths,但绝大多数情况不需要手动填 - 验证方法:输入
import numpy as np,然后敲np.→ 看是否弹出array、zeros等函数,悬停在np.array上是否显示完整签名和 docstring
文档预览失效时重点检查的两个隐藏开关
即使补全正常,悬停不显示文档、F12 跳不到定义,大概率是这两个设置被 GUI 界面悄悄关掉了:
-
"editor.hover.enabled": true—— 控制悬停是否触发,GUI 设置里叫“启用悬停” -
"editor.links": true—— 控制链接可点击性,影响 import 跳转和 URL 渲染(比如 docstring 里的官网链接) - 另外,
python.analysis.typeCheckingMode设为"basic"或"off"可避免因类型检查卡住导致 hover 延迟甚至空白
最常被忽略的一点:Pylance 的文档预览依赖源码注释的真实存在。很多二进制分发的包(如某些 conda-forge 构建)会剥离 docstring,这时候哪怕路径全对,hover 也只显示 No documentation available —— 这不是配置问题,得换 pip 安装或查对应 stubs 是否覆盖完全。
Python免费学习笔记(深入):立即使用
在学习笔记中,你将探索 Python 的核心概念和高级技巧!










