网淘吧Visual Components、Flexsim 仿真技术博客 | Python、C#、Delphi xe 机器人编程教程 - 网淘吧

VC Python API 类型存根(.pyi)文件:为 VS Code 提供智能自动补全与类型检查- Extensions and Python Add-ons - visual compents 疑难解答

2026-04-03 新闻来源:网淘吧 围观:56
电脑广告
手机广告

TSy

Python 接口定义存根/模块(.pyi 文件)是一种标准化的方式来描述可从 Python 访问但并非以 Python 代码实现的 API。它们可以包含类型信息,高级 Python 编辑器(如带有 Python 扩展的 Visual Studio Code)可以利用这些信息提供非常智能的自动补全和静态类型检查。

我根据新的在线帮助为 VC 4.8 Premium 的 API 生成/制作了完整的 pyi 定义。

以下是一个(无声)演示,展示如何在 Visual Studio Code 中使用这些文件,并使用 Pylance 作为类型检查器。

功能:

  • 包含在线帮助中描述的所有 Python 类及其成员(属性、方法、构造函数、事件)以及常量。
  • 尽可能包含准确的类型信息。
  • 包含描述和指向在线帮助的直接链接。
  • 模块组织与 VC 类似。可以导入 vcScript、vcCommand、vcVector 等中的函数。

注意事项:

  • 某些基类(如 vcBehaviour)的定义必须包含可能仅存在于某些行为中的属性。这些属性在描述中会有注释。
  • 类型检查器不再真正支持 Python 2,因此它们会抱怨 print 语句和类型之间的赋值,因为无法使用类型转换。
  • 动态创建的属性无法预知,因此不包含在内。

如何与 Visual Studio Code 一起使用

  • 下载 pyi 文件并将其解压到某个方便的位置。
  • 安装 VS Code、Python 扩展和 Pylance 扩展。
  • 将 pyi 模块文件夹添加到 Python 扩展的“python.autoComplete.extraPaths”和“python.analysis.extraPaths”设置中。
  • 将 VC 配置为使用 VS Code 作为外部 Python 编辑器。
  • 从 VC 打开 Python 脚本,配置 VS Code 信任文件夹路径以启用所有编辑器功能。
  • 在 VS Code 中启用类型检查。

从此处下载文件:

vcApi VC48.zip(146.6 KB)

15 个赞
外部库在 Python 脚本中的自动补全
在哪里找到“vcCommand”文件
ChatGPT 作为 VC Python API 的编码助手 – 有人运气更好吗?
带自动补全的集成编辑器
缓冲区资源位置随放置位置变化
visual Components 4.10 Python 编辑错误

这太棒了!我将 vcApi 文件夹提取到我的 VC 安装目录下的 Python\Commands 文件夹中。以下是我修改 Pylance 设置并使其工作的方式。


4 个赞

哇,这改变了游戏规则,感谢分享!

所以,在我花了几个小时试图让这个在我的新机器上运行之后,我终于搞定了。:slight_smile:

  1. 首先按照主帖中的说明操作。
  2. 然后,如果你懒得阅读所有内容,请将文件放入 @Este 评论中描述的安装文件夹中。
    2a) 我在这里粘贴了路径字符串,这样你就不需要替换所有斜杠:“C:/Program Files/Visual Components/Visual Components Premium 4.8/Python/Commands/vcApi”
  3. 这是我的技巧: 在 Visual Studio Code 中创建工作区,设置工作区使自动补全开始工作。我只选择我的 C 盘。
2 个赞

你好,
谢谢!这太棒了。
我对 Visual Code 和 VC 中的 Python 编程都很陌生,自动补全功能帮助很大!

是否可以在 Visual Code 中跟踪执行?

你好,

不确定是否可以使用外部编辑器跟踪执行,但内部编辑器可以做到这一点。

此致,
Lefa

已更新以匹配 VC 4.10.0 中的 Python API
vcScript VC 410.zip(148.0 KB)

来自差异的部分 AI 生成摘要:

以下是 vcApi.pyi 文件在 4.8 和 4.10 版本之间的主要变化:

  • 新属性和方法
    • vcApplication:
      • 添加了 LayoutVisualizationSettings 属性。
      • 添加了 SimulationWorld 属性。
    • vcBehaviour:
      • 添加了 Visible 属性,带有 getter 和 setter。
    • vcLayout:
      • 添加了新类,包含属性 ChildLayouts、ParentLayout、Visualization,以及方法 Clone 和 MoveChildrenFrom。
    • vcLayoutVisualization 和 vcLayoutVisualizationSettings:
      • 添加了用于管理布局可视化设置的新类。
    • vcLight:
      • deleteLight 方法现在接受 vcLight 对象而不是字符串名称。
    • vcProcessController:
      • 更新了文档字符串以反映流程管理服务的变化。
    • vcPythonProcessHandler:
      • 更新了 condition 和 triggerCondition 方法,接受 Callable[[], None] 而不是 Callable[[], bool]。
3 个赞

有人能告诉我如何解决这个 vcApplication 智能感知问题吗?



我认为导入无法解析是因为 vcApplication 在这些 API 文件中没有定义为单独的模块,类定义在 vcScript 中。

需要创建一个单独的 vcApplication.pyi 文件,其中包含静态模块级成员和一个空的 vcApplication 文件夹,才能使直接导入生效。

你可能只需在代码中使用 vcApplication 前缀即可,例如 vcApplication.loadBitmap(...)。

免责申明
部分文章来自各大搜索引擎,如有侵权,请与我联系删除。
打赏

文章底部电脑广告
手机广告位-内容正文底部

相关文章

上网淘巴领天猫淘宝优惠券,一年省好几千。

广告  ×

您是本站第940256名访客 今日有0篇新文章/评论