2011-11-26 9 views
5

Quiero que mi programa en Python que sea capaz de AppleScript, al igual que un programa en C Objetivo sería. ¿Es eso posible?¿Puede un programa escrito en Python ser AppleScripted?

(Nota: esto no es acerca de la ejecución de AppleScript de los programas Python, ni en llamar a los programas en Python de AppleScript a través de Unix invocación del programa. Esos son sencillos. Necesito genuina AppleScriptability de las operaciones de mi programa.)

Existe cierta documentación sobre cómo hacer esto. documentación de Python 2.7.2 describe MiniAEFrame, por ejemplo, pero incluso una mínima referencia a from MiniAEFrame import AEServer, MiniApplication muere con un ImportError y una queja de que una imagen adecuada no se puede encontrar/mi arquitectura (x86) no es compatible. Rut roh! Parece que MiniAEFrame podría pertenecer al conjunto de API anterior ("Carbono"). En otras palabras, obsoleto.

Hay un artículo muy agradable sobre "Uso de PyObjC para desarrollar aplicaciones Cocoa con Python" (http://developer.apple.com/cocoa/pyobjc.html). Excepto que fue escrito en 2005; mi versión recientemente actualizada de Xcode (4.1) no tiene ninguna de las opciones que describe; los archivos del proyecto Xcode que proporciona explotan en una impresionante falla de compilación; y la última actualización de PyObjC parece haber sido hecha hace 2 años. Apple parece haber eliminado todas las funciones que le permiten construir aplicaciones "reales" en AppleScript o Python, dejando sólo Objective C.

Así que, ¿cuáles son mis opciones? ¿Todavía es posible construir una aplicación de Mac AppleScriptable real usando Python? ¿Si es así, cómo?

(Si es importante, lo que necesito AppleScripted es la inserción de texto. Necesito que Dragon Dicate pueda agregar texto a mi aplicación. Actualmente estoy usando Tk como su marco de interfaz de usuario, pero me gustaría utilizar el lenguaje nativo Las API/herramientas de Cocoa/Xcode en su lugar, si eso ayuda.)

Respuesta

3

PyObjC aún es compatible con Lion, simplemente ya no es compatible con Xcode 4. Y aunque PyObjC 2.2 no se ha actualizado oficialmente desde 2009, sigue siendo desarrollado - Apple lanzó la versión 2.3.2a0 con 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' 
>>> 

De hecho, esta etiqueta no se encuentra en el PyObjC SVN, por lo que Apple puede haber bifurcado el proyecto.

lo tanto, debe ser capaz de construir una aplicación de cacao y poner en práctica AppleScriptability por portar este ejemplo para PyObjC:

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

0

También puede utilizar el módulo py-aemreceive a partir del AP-appscript. Lo uso para implementar el soporte de AppleScript en mi aplicación Tkinter.

Cuestiones relacionadas