【问题标题】:How to create Python Stub Files and where to put?如何创建 Python 存根文件以及放在哪里?
【发布时间】:2021-02-06 11:02:02
【问题描述】:

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

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

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

【问题讨论】:

    标签: python-3.x pylint python-extensions pyi


    【解决方案1】:

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

    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 都应该能够解析它。完整代码可以在here找到。

    【讨论】:

      猜你喜欢
      • 2017-08-23
      • 1970-01-01
      • 2015-02-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-17
      • 1970-01-01
      • 2014-12-01
      相关资源
      最近更新 更多