我编译了一个 Python 扩展。生成的二进制mylib.so文件可以在 Python 脚本中导入并且工作正常。
现在我想知道如何编写接口存根文件mylib.pyi,以便 VS Code 中使用的 pylint 和 Python 语言服务器可以使用它?
目前,本机库只是在我的脚本的根目录中。当将其放在mylib.pyi旁边时,pylint 会忽略它。
我编译了一个 Python 扩展。生成的二进制mylib.so文件可以在 Python 脚本中导入并且工作正常。
现在我想知道如何编写接口存根文件mylib.pyi,以便 VS Code 中使用的 pylint 和 Python 语言服务器可以使用它?
目前,本机库只是在我的脚本的根目录中。当将其放在mylib.pyi旁边时,pylint 会忽略它。
我知道这个问题已经有一年了,但答案可能会帮助下一个人。我设法通过编写以下设置文件来做到这一点:
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 都应该能够解析它。完整的代码可以在这里找到。