2

我编译了一个 Python 扩展。生成的二进制mylib.so文件可以在 Python 脚本中导入并且工作正常。

现在我想知道如何编写接口存根文件mylib.pyi,以便 VS Code 中使用的 pylint 和 Python 语言服务器可以使用它?

目前,本机库只是在我的脚本的根目录中。当将其放在mylib.pyi旁边时,pylint 会忽略它。

4

1 回答 1

0

我知道这个问题已经有一年了,但答案可能会帮助下一个人。我设法通过编写以下设置文件来做到这一点:

from distutils.core import setup, Extension
extension = Extension(
    name = 'dummy',
    sources = ...,
    ...
)
    
setup(
    name = 'dummy',
    ext_modules = [extension],
    packages = ['dummy'],
    package_dir = {'dummy' : './stub'},
    package_data = {
        'dummy': ['__init__.pyi', 'py.typed']
    }
)

据我了解,该stub目录被视为一个单独的包并与扩展名一起安装。我只用 vscode 测试过它,但我相信所有的 IDE 都应该能够解析它。完整的代码可以在这里找到。

于 2022-02-28T16:24:32.290 回答