我正在使用pythonnet(https://github.com/pythonnet/pythonnet(,并在同一解决方案空间中引用了一个.Net库,但它似乎没有提取任何信息用于智能感知。事实上,VS 给出了一个错误: "无法解决"参考"问题。此模块可能缺少智能感知。 那么如何将智能感知添加到我的"模块"中呢?
即使出现错误,脚本仍然可以运行(在VS中或从VS中运行(。我已经设置了彻底的XML,因为还有一个用于chm输出的沙堡项目。沙堡项目能否输出缺少的适当内容?
彼得史蒂文斯的回答对我来说似乎很好。 他的解决方案使用IronPython来生成存根。 这些存根依次由CPython自动完成机制使用,例如Visual Studio Code。
假设你有一个位于 c:\dev\HTL\bin\release\HTL 中的 c# dll.dll你想从 Python 访问,并且需要自动完成来帮助代码。 安装 IronPython 并下载 ironpython-stubs 模块后,您可以执行以下操作:
ipy -m ironstubs make HTL --path="c:\dev\HTL\bin\release\HTL.dll" -output stubs.min
然后,正如上面彼得的回应一样,在 VS Code 中使用 File |偏好 |将完整的 stubs.min 路径添加到"python.autoComplete.extraPaths"的设置。将目标 dll 导入 VS Code 编辑器中的 *.py 文件后,您现在应该能够为该 dll 中包含的类添加点以自动完成。
使用 ironpython-stubs 模块。
确保你的dll在sys.path中,然后从ironpython运行 ipy -m ironstubs make --output stubs.min
然后将"python.autoComplete.extraPaths"设置为\ironpython-stubs\release\stubs.min
像魅力一样工作