最近在搞pybind11导出,在github上找到了一个项目,可以生成pyi, 减少了导入模块没有提醒的问题, 终于在使用IDE编码的时候可以智能提示了。
1、安装
pip install pybind11_stubgen
2、使用pybind11_stubgen生成pyi, 例如生成testAPI.pyd的路径为 xxx/bin/Release
import os, sys
sys.path.append(os.path.join("xxxx", "bin", "Release"))
module_name = "testAPI"
exec("import %s" % module_name)
from pybind11_stubgen import ModuleStubsGenerator
module = ModuleStubsGenerator(module_name)
module.parse()
module.write_setup_py = False
with open("%s.pyi" % module_name, "w") as fp:
fp.write("#\n# Automatically generated file, do not edit!\n#\n\n")
fp.write("\n".join(module.to_lines()))
提示: pyi尽量生成在项目的最外层目录,方便导入,超好用。