Python编写的程序能否用AppleScript运行?

5
我希望我的Python程序可以像Objective C程序一样支持AppleScript。这是否可能?
(请注意,这不是关于从Python程序中运行AppleScript,也不是通过Unix程序调用从AppleScript调用Python程序。这些都很简单。我需要程序操作的真正的AppleScriptability。)
有一些关于如何做到这一点的文档。例如,Python 2.7.2文档描述了MiniAEFrame,但即使是对from MiniAEFrame import AEServer, MiniApplication的最小参考也会死亡,并抱怨找不到合适的映像/不支持我的架构(x86)。看来MiniAEFrame可能与早期(“Carbon”)API集相关。换句话说,已经过时了。
有一篇非常好的文章介绍了“使用PyObjC开发带有Python的Cocoa应用程序” (http://developer.apple.com/cocoa/pyobjc.html)。但它是在2005年写的;我最近更新的Xcode版本(4.1)没有任何它所描述的选项;它提供的Xcode项目文件将在令人印象深刻的构建失败中崩溃;而最后一个PyObjC更新似乎是2年前进行的。苹果似乎已经删除了所有让您在AppleScript或Python中构建“真实”应用程序的功能,只剩下Objective C。
那么,我的选择是什么?是否仍然可以使用Python构建真正的AppleScriptable Mac应用程序?如果是这样,该怎么做?
(如果有关系,我需要进行AppleScripted的是文本插入。我目前正在使用Tk作为其UI框架,但如果可以帮助的话,我很乐意改用本机Cocoa / Xcode API /工具。)
2个回答

3

PyObjC在Lion中仍受支持,只是不再在Xcode 4中受支持。虽然自2009年以来尚未正式升级PyObjC 2.2,但它仍在开发中 - 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'
>>> 

事实上,这个标签在PyObjC SVN中找不到,因此苹果可能已经分叉了该项目。
因此,您应该能够构建一个Cocoa应用程序,并通过将此示例移植到PyObjC来实现AppleScriptability。

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


0

你也可以使用py-appscript中的py-aemreceive模块。我用它来在我的Tkinter应用程序中实现AppleScript支持。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接