2011-01-03 1 views
2

Я создал пакет .app из скрипта python, используя py2app. Проблема имеет два аспекта:Каков правильный способ создания замороженных двоичных файлов Python для OSX, которые могут принимать аргументы?

  1. эмуляция Аргумент не отображается правильно работать, потому что не принимает аргументы, которые работают на оригинальном питона сценария.

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

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

+0

Есть ли какая-то причина, по которой вам нужен комплект приложений для командной строки? Если да, пожалуйста, разверните свой вопрос, чтобы объяснить пример использования. –

+0

Нед, не нужно. На самом деле это просто простая утилита командной строки. –

+0

ОК. Когда вы задаете вопросы по StackOverflow, если ответ удовлетворительный, вы должны пометить ответ как принятый; в противном случае, уточните вопрос, пока не получите удовлетворительный. Именно так зарабатываются очки репутации. –

ответ

2

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

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

1

Используйте pyinstaller, он может легко создавать исполняемые файлы командной строки для Linux, подобные Linux, а также для Linux и ОС Windows.

Я использовал оба py2app и pyinstaller для выполнения исполняемых файлов OS X, а для меня pyinstaller лучше и проще настроить. Однако py2app также может обрабатывать аргументы, даже если он создает пакеты приложений. Поэтому подумайте, что у вас просто неправильные настройки здания.

 Смежные вопросы

  • Нет связанных вопросов^_^