2011-11-26 85 views
5

我希望我的Python程序能夠像AppleScript一樣,就像Objective C程序一樣。那可能嗎?用Python編寫的程序是AppleScripted嗎?

(注意,這是不是從Python程序運行的AppleScript,也沒有關於通過Unix編程調用從調用AppleScript的Python程序,這些都是簡單的。我需要我的程序的操作的真正AppleScriptability。)

有一些有關如何執行此操作的文檔。舉例來說,Python 2.7.2文檔描述了MiniAEFrame,但即使對from MiniAEFrame import AEServer, MiniApplication的最小引用也會死於ImportError,並且抱怨找不到合適的圖像/我的體系結構(x86)不受支持。 Rut roh!看起來MiniAEFrame可能屬於較早的(「碳」)API集。換句話說,已經過時了。

有一篇關於「使用PyObjC開發可可應用程序和Python」的非常好的文章 (http://developer.apple.com/cocoa/pyobjc.html)。除了它是在2005年寫的;我最近更新的Xcode(4.1)版本沒有它描述的任何選項;它提供的Xcode項目文件在令人印象深刻的構建失敗中爆炸;而最近的PyObjC更新似乎是在兩年前完成的。 Apple似乎已經刪除了所有可讓您在AppleScript或Python中構建「真實」應用程序的功能,只留下了Objective C

那麼,我的選擇是什麼?是否仍有可能使用Python構建一個真正的AppleScriptable Mac應用程序?如果是這樣,怎麼樣?我需要Dragon Dicate來爲我的應用程序添加文本,我目前使用Tk作爲它的UI框架,但會很樂意使用本機可替代的Cocoa/Xcode API /工具,如果可以的話)

回答

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' 
>>> 

事實上,這個標籤在PyObjC SVN中找不到,因此Apple可能會分叉項目。

所以,你應該能夠建立一個可可應用程序和實施AppleScriptability通過移植這個例子PyObjC:

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

0

您還可以使用從白翎appscript的PY-aemreceive模塊。我使用它在我的Tkinter應用程序中實現AppleScript支持。

相關問題