【问题标题】: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找到。