如何为已编译的 Python 扩展名生成 .pyi 文件?

How to generate .pyi files for a compiled Python extension?

我用 C++ 和 pybind11 构建了一个已编译的 Python 扩展(.pyd 文件)。我想为我的 .pyd 文件生成一个 Python 接口 .pyi 文件。

有几个类似的问题涉及 mypy stubgen 模块,但是,这个问题产生了一个 UnicodeError 试图 运行 stubgen Dummy 其中DummyDummy.pyd 文件:

UnicodeDecodeError: 'utf-8' codec can't decode byte 0x90 in position 2: invalid start byte

另一个项目,make-stub-files 根本无法处理 .pyd 个文件,出现 ('not a python file' 错误。

是否有任何工具可以让我从源 .cpp 文件或编译的 .pyd 文件生成 .pyi 文件?

问题已在 mypy GitHub repository 中注册。

issue was registered in the mypy GitHub source repository and fixed in a pull request

问题的原因是,当 mypy 试图确定给定模块是否是 Python 扩展时,它会检查 .so 上使用的文件扩展名21=],但没有检查 Windows.

上使用的 .pyd 文件扩展名