Estoy empezando a aprender sobre la integración de las aplicaciones Python y Mac OS. (Quiero llamar a algunos métodos desde Cocoa a Python.) He encontrado estas terminologías: Scripting Bridge, PyObjC y py2app. ¿Cual es la diferencia? ¿Es PyObjC un ejemplo de un puente de scripting? ¿Y cuándo entra en juego py2app?Scripting Bridge vs PyObjC contra py2app
Respuesta
La versión corta: PyObjC es la forma en que llamas API de Mac OS X, Scripting Bridge es la forma en que hablas con las interfaces de scripting de otras aplicaciones. Más detalladamente:
PyObjC es un puente entre el lenguaje Python y el tiempo de ejecución de Objective C (y el conjunto de envoltorios de cacao construidos trivialmente en la parte superior de ese puente, y algunas cosas útiles). Si desea llamar a los métodos de Cocoa, utiliza PyObjC, generalmente mediante la importación de Cocoa o Foundation.
Scripting Bridge es un puente entre el lenguaje Python y el sistema de scripting basado en eventos de Apple. Si desea llamar a la interfaz de scripting de otra aplicación, use Scripting Bridge. (En la mayoría de los casos, si usa Scripting Bridge, también querrá importar Foundation, porque Scripting Bridge se ocupa de cosas como NSArrays, etc.)
Por lo tanto, PyObjC no es un ejemplo de un puente de scripting. Un ejemplo de un puente de scripting es, bueno, Scripting Bridge o Appscript (que es mejor, pero no de Apple, y ya no se mantiene).
py2app no tiene mucho que ver con ninguno de estos; es una forma de envolver una aplicación Python, junto con todos los módulos de extensión que requiere, y la mayor cantidad de intérprete de Python que sea necesario, en un único paquete .app que puede distribuir a los usuarios para que puedan hacer doble clic en ejecutarlo. Por supuesto, la mayoría de esas aplicaciones tendrán GUI, y muchas de ellas usarán PyObjC para crear esas GUI directamente en Cocoa (en lugar de usar, por ejemplo, PyQt o wxPython), pero más allá de eso, no hay una conexión real.
- 1. crear lista de reproducción de iTunes con scripting bridge
- 2. Sandboxing mi aplicación con Scripting Bridge para enviar correo electrónico
- 3. ¿cómo uso py2app?
- 4. php vs bash para CLI scripting?
- 5. `Entero` vs` Int64` contra `Word64`
- 6. IDataErrorInfo contra ValidationRule vs Exception
- 7. Func vs Acción contra predicado
- 8. Desarrollo de PyObjC con Xcode 3.2
- 9. Ruby to Python bridge
- 10. Confluence - VIM bridge?
- 11. OrientDB PHP/Gremlin Bridge
- 12. AbstractFactory Versus Bridge Pattern
- 13. PyObjC + Python 3.0 Preguntas
- 14. ¿Hay alguna manera de encontrar programáticamente North Bridge Bridge, South Bridge Names y otra información de hardware en Windows?
- 15. Trabajar con Php-Java Bridge
- 16. ¿Cómo se especifica el icono de py2app?
- 17. partido contra Mysql ... vs simple como "%% término"
- 18. PyObjC en iPhone (iOS5) roto?
- 19. ¿Qué lenguaje de scripting funciona mejor en vs perl vs python vs ruby?
- 20. Ruby vs Lua como lenguaje de scripting para C++
- 21. F # light weight scripting enviorment
- 22. Thunderbird scripting
- 23. Scripting SVG
- 24. Roslyn Scripting
- 25. Acceso al acelerómetro iPhone usando PyObjC
- 26. PyObjc y Cocoa en Snow Leopard
- 27. Finalización del código para MacRuby/PyObjC/RubyMotion
- 28. Elegir un lenguaje de scripting de automatización de Windows. AutoIt vs Autohotkey
- 29. py2app no está copiando el Python.framework a la nueva aplicación durante el uso de virutalenv
- 30. ¿Alguien ha creado con éxito una aplicación PyObjC en Snow Leopard?
Además, dependiendo de las aplicaciones con las que intente integrarse, es posible que 'py-appscript' sea una mejor opción que Scripting Bridge. No se deje intimidar por la advertencia de desaprobación del desarrollador, sigue siendo la mejor interfaz de secuencias de comandos de eventos de Apple, especialmente para aplicaciones con interfaces de scripts funky. http://pypi.python.org/pypi/appscript/ –
Como mencioné anteriormente, Appscript ya no se mantiene. De hecho, ya no está aceptando parches de otras personas. Eventualmente, dejará de funcionar, a menos que alguien más se haga cargo. Dicho esto, todavía lo estoy usando en múltiples aplicaciones, Python y ObjC, y voy a seguir parchándolo yo mismo en lugar de cambiar a Scripting Bridge y tratar de solucionar los problemas con iTunes y Finder ... Pero siempre me siento preocupado sobre recomendarlo a nuevos usuarios. – abarnert
Lo siento. Pasé por alto tu mención de Appscript. Estoy de acuerdo con tu evaluación –