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

时间:2018-06-27 07:55:02

标签: python mypy python-extensions typeshed

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

也有一些类似的问题涉及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中。

1 个答案:

答案 0 :(得分:1)

issue was registered in the mypy GitHub source repository并固定在pull request中。

该问题的原因是,当mypy试图确定给定模块是否为Python扩展名时,它检查了Linux上使用的.so文件扩展名,但没有检查该扩展名。 Windows上使用的.pyd文件扩展名。