用Python编写的程序可以是AppleScripted吗?

Jon*_*ice 5 python xcode applescript

我希望我的Python程序能够像AppleScript一样,就像Objective C程序一样.那可能吗?

(注意,这不是关于从Python程序运行AppleScript,也不是关于通过Unix程序调用从AppleScript调用Python程序.这些都很简单.我需要程序操作的真正AppleScriptability.)

有一些关于如何执行此操作的文档.例如,Python 2.7.2文档描述了MiniAEFrame,但即使是对from MiniAEFrame import AEServer, MiniApplication模具的最小引用,ImportError也存在无法找到合适图像的抱怨/我的架构(x86)不受支持.车辙!似乎MiniAEFrame可能与早期("Carbon")API集有关.换句话说,已经过时了.

有一篇非常好的文章关于"使用PyObjC用Python开发Cocoa应用程序"(http://developer.apple.com/cocoa/pyobjc.html).除了它是在2005年写的; 我最近更新的Xcode(4.1)版本没有它描述的任何选项; 它提供的Xcode项目文件在令人印象深刻的构建失败中爆炸; 最近的PyObjC更新似乎是在2年前完成的.Apple似乎已经删除了所有允许您在AppleScript或Python中构建"真实"应用程序的功能,只留下了Objective C.

那么,我的选择是什么?是否仍然可以使用Python构建一个真正的AppleScriptable Mac应用程序?如果是这样,怎么样?

(如果重要的话,我需要AppleScripted是文本插入.我需要Dragon Dicate才能在我的应用程序中添加文本.我目前正在使用Tk作为其UI框架,但很乐意使用本机Cocoa/Xcode API /工具,如果这会有所帮助.)

Dav*_*ess 3

PyObjC 在 Lion 中仍然受支持,只是在 Xcode 4 中不再受支持。虽然 PyObjC 2.2 自 2009 年以来尚未正式升级,但它仍在开发中 - Apple 随 Lion 发布了版本 2.3.2a0。

$ python
Python 2.7.1 (r271:86832, Jun 16 2011, 16:59:05) 
[GCC 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2335.15.00)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import objc
>>> objc.__version__
'2.3.2a0'
>>> 
Run Code Online (Sandbox Code Playgroud)

事实上,这个标签在 PyObjC SVN 中找不到,因此 Apple 可能已经分叉了该项目。

因此,您应该能够通过将此示例移植到 PyObjC 来构建 Cocoa 应用程序并实现 AppleScriptability:

http://developer.apple.com/cocoa/applescriptforapps.html