Как правильно сделать замороженные двоичные файлы Python для OSX, которые могут принимать аргументы? - PullRequest
2 голосов
/ 03 января 2011

Я сделал пакет .app из скрипта Python, используя py2app.Проблема двоякая:

  1. Эмуляция аргумента не работает должным образом, поскольку она не принимает аргументы, которые работают с оригинальным скриптом Python.

  2. Формат пакета .app необходимо открыть с помощью команды «open».«open» поддерживает только передачу аргументов из OSX 10.6 и выше, и мне нужна поддержка для более ранних версий OSX.

Какой правильный способ сделать замороженный двоичный файл для OSX, который может принимать командную строкуаргументы?

Ответы [ 2 ]

2 голосов
/ 03 января 2011

Как правило, пакеты приложений OS X не предназначены для запуска из командной строки и передачи аргументов из командной строки (как вы заметили, OS X 10.6 добавила некоторую поддержку для этого).Стандартный механизм передачи файлов в приложение - Apple Events ;это используется для команды Finder Open файла документа с типом, обрабатываемым приложением, или когда файл сбрасывается на значке приложения в Dock.py2app предназначен для упаковки приложений, которые будут использоваться как стандартные приложения Mac GUI, в частности, с использованием протокола запуска и получения файлов через Apple Events.Он не предназначен для создания утилит командной строки.Если последнее - это то, что вы упаковываете, просто используйте обычный способ упаковки Distutils .Или, если ваш сценарий состоит только из одного файла, вы можете сделать его автономным сценарием shebang, как описано здесь .

Также обратите внимание, что при работе в ОС необходимо работать как полноценное приложение.X, чтобы использовать определенные интерфейсы GUI, сам Python на OS X обычно устанавливается в рамках и запускается из пакета Python.app, установленного внутри структуры.(Это верно для питонов, поставляемых Apple, тех, которые установлены python.org установщиками, и MacPorts установленных питонов.) Когда скрипты запускаются одним из этих framework Pythons, они распознаются как приложения с графическим интерфейсомOS X без необходимости создавать собственные пакеты приложений.

1 голос
/ 18 января 2011

Использование pyinstaller позволяет легко создавать исполняемые двоичные исполняемые файлы командной строки, подобные linux, для OS X. Это также может быть сделано для ОС Linux и Windows.pyinstaller, чтобы делать исполняемые файлы OS X, и, как по мне, pyinstaller лучше и проще в настройке.Однако py2app также может обрабатывать аргументы, даже если он создает пакеты приложений.Так что думаю, что у вас просто неправильные настройки здания.

...