Я только начинаю изучать интеграцию приложений Python и Mac OS. (Я хочу вызвать некоторые методы из Cocoa в Python.) Я столкнулся с этими терминами — Scripting Bridge, PyObjC и py2app. Какая разница? Является ли PyObjC примером моста сценариев? И когда py2app вступает в игру?
Мост сценариев против PyObjC против py2app
Ответы (1)
Краткая версия: PyObjC — это то, как вы вызываете API-интерфейсы Mac OS X, Scripting Bridge — это то, как вы общаетесь с интерфейсами сценариев других приложений. Более подробно:
PyObjC — это мост между языком Python и средой выполнения Objective C (и набор оболочек Cocoa, тривиально построенных поверх этого моста, и некоторые приятные удобства). Если вы хотите вызывать методы Cocoa, вы используете PyObjC, обычно импортируя либо Cocoa, либо Foundation.
Scripting Bridge — это мост между языком Python и системой сценариев Apple, основанной на событиях. Если вы хотите вызвать интерфейс сценариев другого приложения, вы используете Scripting Bridge. (В большинстве случаев, если вы используете Scripting Bridge, вы также захотите импортировать Foundation, потому что Scripting Bridge работает с такими вещами, как NSArrays и т. д.)
Итак, PyObjC не является примером скриптового моста. Примером скриптового моста является, ну, Scripting Bridge или Appscript (который лучше, но не от Apple и больше не поддерживается).
py2app не имеет ничего общего ни с одним из них; это способ упаковать приложение Python вместе со всеми необходимыми ему модулями расширения и столько интерпретатора Python, сколько необходимо, в единый пакет .app, который вы можете распространять среди пользователей, чтобы они могли просто дважды щелкнуть, чтобы запустить его. Конечно, большинство таких приложений будут иметь графический интерфейс, и многие из них будут использовать PyObjC для создания этих графических интерфейсов непосредственно в Cocoa (вместо использования, например, PyQt или wxPython), но помимо этого реальной связи нет.
py-appscript
лучший выбор, чем Scripting Bridge. Не пугайтесь заявления разработчика об устаревании, это по-прежнему лучший интерфейс сценариев Apple Event, особенно для приложений с причудливыми интерфейсами сценариев. pypi.python.org/pypi/appscript
- person Ned Deily; 05.06.2012