Pylance未启用是补全失效主因;需确认解释器已选对、设置中python.languageServer值为"Pylance"、卸载冲突扩展,并关闭autoSearchPaths以提升性能。

确认 Pylance 是否已安装且启用
VS Code 的 Python 补全能力几乎完全依赖 Pylance,但它默认随 ms-python.python 扩展一起安装,却未必启用。右下角状态栏没显示带紫色图标的 Pylance,或者显示了但补全卡在“正在分析…”——说明它没真正跑起来。
检查三件事:
• 按 Ctrl+Shift+P 输入 Python: Select Interpreter,选对虚拟环境路径(比如 ./venv/bin/python)
• 打开设置(Ctrl+,),搜 python.languageServer,值必须是 "Pylance"(不是 "Default" 或空)
• 卸载所有非微软官方的 Python 扩展(尤其是旧版 python 或第三方语言服务器),它们会冲突并静默禁用 Pylance
关掉 autoSearchPaths,否则补全永远慢
python.analysis.autoSearchPaths 是 Pylance 卡顿的头号原因。默认为 true 时,它会顺着软链接、父目录、同级 src/ 目录一路扫描,把 venv/、node_modules/、__pycache__/ 全塞进索引——CPU 拉到 80%,内存破 1.5GB 就是它干的。
必须手动关掉:
• 在设置里搜 autoSearchPaths,设为 false
• 紧接着配 python.analysis.extraPaths,只写你真正在写的模块,例如 ["src", "tests"](注意:不能写 ./src 或绝对路径,必须是工作区根目录下的相对路径)
• monorepo 项目别加 packages/**,只加当前子包,比如 ["packages/my-core"]
用 pyrightconfig.json 替代 settings.json 配置
VS Code 的 settings.json 对 exclude 规则经常失效,但 pyrightconfig.json 的 include 一定生效——它是 Pylance 底层 Pyright 的真实配置入口,优先级更高。
在项目根目录新建 pyrightconfig.json,至少包含:
• "include": ["src", "tests"] —— 明确告诉它只分析哪些目录
• "exclude": ["**/migrations", "**/__pycache__", "**/venv"] —— 排除干扰项
• "typeCheckingMode": "basic" —— 不要设成 strict,否则补全延迟明显增加
• 别碰 "reportGeneralTypeIssues" 除非你真想被泛型警告刷屏
补全失效时先查 import 和类型注解
Pylance 不靠猜,它靠 AST + import 路径 + 类型信息。常见失效点不是插件坏了,而是上下文缺失:
• 输入 pd. 没提示?确认写了 import pandas as pd,而不是只装了包没 import
• obj. 补不出方法?检查 obj 类型是否可推断——加类型注解如 obj: MyService 或用 from __future__ import annotations(Python ≥3.7)
• 第三方库补全不全?查有没有对应 types-xxx 包(比如 pip install types-requests)
• 动态属性(getattr(obj, name) 或 obj.__dict__['x'])永远不补全——这是设计使然,不是 bug
真正拖慢补全的从来不是代码量,而是配置里那一行没关掉的 autoSearchPaths,和项目根目录下缺的那一个 pyrightconfig.json。这两处改完,90% 的“卡顿”会立刻消失。


















