6

我刚刚开始学习如何集成 Python 和 Mac OS 应用程序。(我想调用一些从 Cocoa 到 Python 的方法。)我遇到过这些术语——Scripting Bridge、PyObjC 和 py2app。有什么不同?PyObjC 是脚本桥的一个例子吗?什么时候 py2app 开始发挥作用?

4

1 回答 1

7

简短版本:PyObjC 是您调用 Mac OS X API 的方式,Scripting Bridge 是您与其他应用程序的脚本接口对话的方式。更详细地说:

PyObjC 是 Python 语言和 Objective C 运行时之间的桥梁(以及在该桥梁之上简单构建的一组 Cocoa 包装器,以及一些不错的便利工具)。如果你想调用 Cocoa 方法,你可以使用 PyObjC,通常是通过导入 Cocoa 或 Foundation。

Scripting Bridge 是 Python 语言和 Apple 基于事件的脚本系统之间的桥梁。如果你想调用另一个应用程序的脚本接口,你可以使用 Scripting Bridge。(在大多数情况下,如果您使用的是 Scripting Bridge,您还需要导入 Foundation,因为 Scripting Bridge 处理诸如 NSArrays 之类的东西。)

因此,PyObjC 不是脚本桥的示例。脚本桥的一个示例是 Scripting Bridge 或 Appscript(更好,但不是来自 Apple,并且不再维护)。

py2app 与这些都没有太大关系;这是一种将 Python 应用程序及其所需的所有扩展模块以及尽可能多的 Python 解释器打包成单个 .app 包的方法,您可以将其分发给用户,以便他们只需双击即可运行。当然,大多数这样的应用程序都会有 GUI,其中许多将使用 PyObjC 直接在 Cocoa 中创建这些 GUI(而不是使用 PyQt 或 wxPython),但除此之外,没有真正的联系。

于 2012-06-05T19:14:52.923 回答