Может ли программа, написанная на Python, быть AppleScripted? - PullRequest
5 голосов
/ 27 ноября 2011

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

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

Существует некоторая документация о том, как это сделать. Документация 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? Если да, то как?

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

Ответы [ 2 ]

3 голосов
/ 29 ноября 2011

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

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

Итак, вы должны иметь возможность создать приложение Cocoa и реализовать AppleScripability, перенеся этопример для PyObjC:

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

0 голосов
/ 03 декабря 2012

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...