VSCode的Pylance无法显示Rust(PyO3、Maturin)扩展的文档字符串
问题原因
VSCode的Python语言服务依赖**静态类型信息/存根文件(.pyi)**来提供hover提示,而PyO3编译出的原生扩展模块默认不会自动生成这类存根文件。IPython能获取__doc__是因为它在运行时直接读取模块的动态属性,不需要静态分析支持。
解决方法
1. 用maturin生成存根文件
在构建时添加--generate-stubs参数,让maturin自动生成对应的类型存根:
- 开发模式构建:
maturin develop --generate-stubs - 生产构建并安装:
maturin build --generate-stubs pip install [对应wheel包路径]
maturin会在模块安装目录下生成answers.pyi文件,里面包含函数的文档字符串和类型定义。
2. 确保VSCode识别到存根文件
生成的存根文件会和你的扩展模块放在同一目录下(比如Python环境的site-packages/answers/),重启VSCode后,语言服务会自动读取这个存根文件,此时hover get_answer就能看到文档注释了。
额外验证
如果还是没生效,可以检查VSCode的Python解释器是否切换到了你安装模块的环境,确保环境一致。
内容的提问来源于stack exchange,提问作者cadolphs
相关产品推荐
相关产品推荐

