В общем случае пакеты приложений 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 без необходимости создавать их собственные пакеты приложений.
Есть ли какая-то причина, по которой вам нужен комплект приложений для командной строки? Если да, пожалуйста, разверните свой вопрос, чтобы объяснить пример использования. –
Нед, не нужно. На самом деле это просто простая утилита командной строки. –
ОК. Когда вы задаете вопросы по StackOverflow, если ответ удовлетворительный, вы должны пометить ответ как принятый; в противном случае, уточните вопрос, пока не получите удовлетворительный. Именно так зарабатываются очки репутации. –