如何在VSCode中查看Python原始builtin.py而非.pyi存根文件
核心前提说明
Pylance默认跳转.pyi类型存根文件,是其为类型检查服务设计的默认逻辑——存根文件仅保留参数、返回值的类型定义,没有实际运行逻辑,这也是你看不到实现代码的直接原因。
这里需要纠正一个认知偏差:你想要寻找的、包含内置函数完整实现的builtin.py文件本身并不存在。绝大多数内置函数(print、input、len等)的核心运行逻辑是C语言编写的,本地安装的Python环境里不存在对应功能的纯Python实现代码。你能在标准库目录找到的builtins.py,只是用来对外暴露内置模块命名空间的包装层,文件里的内置函数一般只有空函数体占位,并非真实的功能实现。
调整Pylance配置实现真实源码优先跳转
按以下步骤修改配置,就能让内置函数的跳转路径优先匹配本地Python标准库的真实源码文件,而非类型存根:
- 打开VSCode设置界面,快捷键为
Ctrl+,(Windows/Linux)、Cmd+,(macOS) - 先定位当前使用的Python解释器的标准库源码路径:在Python交互终端执行
import sys; print(sys.prefix),输出的路径就是解释器根目录,其中下挂的Lib文件夹就是标准库源码存储位置(常见路径示例:Windows下为C:\Python311\Lib,macOS/Linux下为/usr/lib/python3.11) - 在设置中搜索配置项
Python > Analysis: Extra Paths,把刚才找到的Lib真实路径添加到列表的最顶部,提升其索引优先级 - 搜索并开启配置项
Python > Analysis: Use Library Code For Types,开启后Pylance做类型解析时会优先读取真实库代码,而非仅依赖类型存根文件 - 配置修改完成后,调出命令面板(快捷键
Ctrl+Shift+P),执行Python: Restart Language Server让所有配置生效
配置生效后的实际效果
配置生效后,再次对内置函数执行「转到定义」操作,Pylance会跳过自带的类型存根,直接打开本地标准库路径下的builtins.py文件。
这里需要注意:这个文件里的内置函数只有占位的函数声明,没有具体的功能实现代码,如果需要查看内置函数的真实底层逻辑,需要对照你使用的Python版本,查阅对应CPython版本的C语言源码才能获取。
内容的提问来源于stack exchange,提问作者Seintian
相关产品推荐
相关产品推荐

