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

用于外部编辑器中自动补全和类型检查的 Python API pyi 文件 - Extensions and Python Add-ons - visual compents 疑难解答

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

Python 接口定义存根/模块(.pyi 文件)是一种标准化方式,用于描述可通过 Python 访问但并非以 Python 代码实现的 API。这些文件可以包含类型信息,像安装了 Python 扩展的 Visual Studio Code 这类高级 Python 编辑器可以利用这些信息,提供非常智能的自动补全和静态类型检查。 我基于最新的在线帮助文档,为 VC 4.8 Premium 的 API 制作/生成了完整的 pyi 定义。 这是一个在 Visual Studio Code 中使用这些定义(以 Pylance 作为类型检查器)的(无声)演示。 **功能:** - 包含在线帮助文档中描述的所有 Python 类及其成员(属性、方法、构造函数、事件)以及常量。 - 在可能的情况下包含准确的类型信息。 - 包含描述和指向在线帮助文档的直接链接。 - 模块组织方式与 VC 类似,可以导入来自 vcScript、vcCommand、vcVector 等的函数。 **注意事项:** - 对于某些基类(如 vcBehaviour)的定义,必须包含可能仅存在于部分行为中的属性。这些属性在描述中已添加注释。

扩展功能与 Python 插件

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

我基于最新的在线帮助文档,为 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.autoComplete.extraPaths” 和 “python.analysis.extraPaths” Python 扩展的设置中。配置 VC
  • 以使用 VS Code 作为外部 Python 编辑器。从 VC 打开 Python 脚本,配置 VS Code 信任文件夹路径以启用所有编辑器功能。
  • 在 VS Code 中启用类型检查。
  • 从此处下载文件:

vcApi VC48.zip

(146.6 KB) 15 个赞

Python 脚本中外部库的自动补全
在哪里找到 "vcCommand" 文件
ChatGPT 作为 VC Python API 的编程助手——有人有更好的经验吗?
带自动补全的集成编辑器
缓冲区资源位置根据放置位置变化
Buffer resource location changing based on placement location
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 盘。

大家好!
非常感谢!这太棒了。
我对 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:
      • 新增 布局可视化设置 属性。
      • 新增SimulationWorld属性。
    • vcBehaviour:
      • 新增带 getter 和 setter 的Visible属性。
    • vcLayout:
      • 新增包含以下属性的新类:ChildLayouts、ParentLayout、Visualization
      • 新增方法:Clone、MoveChildrenFrom
    • vcLayoutVisualization 和 vcLayoutVisualizationSettings:
      • 新增用于管理布局可视化设置的新类。
    • vcLight:
      • deleteLight方法现在接受vcLight对象,而不是字符串名称。
    • vcProcessController:
      • 已更新文档字符串以反映进程管理服务的更改。
    • vcPythonProcessHandler:
      • 已更新condition和triggerCondition方法,使其接受Callable[[], None]而非Callable[[], bool]。

3 个赞

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



我认为导入无法解析是因为在这些 API 文件中,vcApplication并未被定义为一个单独的模块,其类定义位于vcScript中。

可能需要创建一个单独的vcApplication.pyi文件,该文件包含静态模块级成员,并且需要一个空文件夹才能实现直接导入。

你或许可以直接在代码中使用vcApplication前缀,例如vcApplication.loadBitmap(...)。

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

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

相关文章

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

广告  ×

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