Может ли программа, написанная на Python, AppleScript?

Я хочу, чтобы моя программа Python была способна AppleScript, как и программа Objective C. Это возможно?

(Обратите внимание, что речь идет не о запуске AppleScript из программ Python, ни о вызове программ Python из AppleScript через вызов программы Unix. Это просто. Мне нужна подлинная AppleScriptability для работы моей программы.)

Существует некоторая документация о том, как это сделать. Документация Python 2.7.2 описывает, например, MiniAEFrame, но даже минимальную ссылку на from MiniAEFrame import AEServer, MiniApplication умирает с ImportError и жалоба на то, что подходящее изображение не может быть найдено / моя архитектура (x86) не поддерживается. Рут ро! Кажется, что MiniAEFrame может относиться к ранее установленному («углеродному») набору API. Другими словами, устарели.

Есть очень хорошая статья о «Использование PyObjC для разработки приложений для какао с помощью Python» (http://developer.apple.com/cocoa/pyobjc.html). Кроме того, что он был написан в 2005 году; моя недавно обновленная версия Xcode (4.1) не имеет ни одного из параметров, которые она описывает; файлы проекта Xcode, которые он обеспечивает, взорвали внушительный сбой сборки; и последнее обновление PyObjC, похоже, было сделано 2 года назад. Apple, похоже, удалила все функции, которые позволяют создавать «настоящие» приложения в AppleScript или Python, оставив только Objective C.

Итак, каковы мои варианты? Возможно ли построить реальное приложение AppleScriptable Mac с помощью Python? Если да, то как?

(Если это имеет значение, то, что мне нужно AppleScript, – это вставка текста. Мне нужен Dire Dicate, чтобы иметь возможность добавлять текст в мое приложение. В настоящее время я использую Tk в качестве интерфейса UI, но буду рад использовать собственные API Cocoa / Xcode / tools вместо этого, если это поможет.)

PyObjC по-прежнему поддерживается в Lion, он больше не поддерживается в Xcode 4. И хотя PyObjC 2.2 официально не обновлялся с 2009 года, он все еще разрабатывается – Apple выпустила версию 2.3.2a0 с Lion.

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

Фактически, этот тег не может быть найден в SVN PyObjC, поэтому Apple может разветвить проект.

Таким образом, вы сможете создать приложение Cocoa и реализовать AppleScriptability, поместив этот пример в PyObjC:

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

Вы также можете использовать модуль py-aemreceive из py-appscript. Я использую это для реализации поддержки AppleScript в своем приложении Tkinter.