2

我正在使用 pythonnet ( https://github.com/pythonnet/pythonnet ) 并在同一解决方案空间中引用了一个 .Net 库,但它似乎没有提取任何用于 Intellisense 的信息。实际上,VS给出了一个错误:“无法解析”ReferenceLibarary“。这个模块可能缺少智能感知。那么如何将智能感知添加到我的“模块”中?

即使出现错误,脚本仍然可以运行(进出 VS)。我已经设置了完整的 XML,因为还有一个用于 chm 输出的沙堡项目。沙堡项目能否输出缺失的相应内容?

4

2 回答 2

1

彼得史蒂文斯的回答对我来说似乎很好。他的解决方案使用IronPython 生成存根。这些存根依次由 CPython 自动完成机制使用,例如 Visual Studio Code。

假设您有位于 c:\dev\HTL\bin\release\HTL.dll 中的 ac# 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 中包含的类。

于 2021-02-09T15:01:33.510 回答
0

使用 ironpython-stubs 模块。

确保您的 dll 在 sys.path 中,然后从 ironpython ipy -m ironstubs make --output stubs.min 运行

然后将“python.autoComplete.extraPaths”设置为 \ironpython-stubs\release\stubs.min

奇迹般有效

于 2018-10-14T11:49:09.007 回答