Как создать установщик для mac osx

Я делаю приложение на питоне, которое может открывать разные типы файлов. Этот код отлично работает в eclipse при передаче имени файла, который я хочу открыть, и файла конфигурации в качестве аргументов соответственно. Теперь я преобразовал это в приложение с помощью py2app. Таким образом, проблема заключается в том, как работать с аргументами, так как файлы разных типов должны открываться через приложение, и этому приложению также требуется файл конфигурации во время обработки. Существуют ли какие-либо другие методы для создания приложения, которое можно установить на Mac OSX.


person user2877960    schedule 16.10.2013    source источник


Ответы (1)


Вы видели py2app? Это в значительной степени py2exe для Mac OSX, который создает отдельное приложение. Вы можете довольно легко обращаться с регистратором и файлами конфигурации и сохранять свое приложение красивым и простым для распространения.

Я обычно храню файлы журнала в домашнем каталоге пользователя как скрытый файл - многие приложения Mac OSX делают это - я не уверен, что это официально так, но это работает. Домашний каталог гарантированно существует, и вы не получите ошибок прав доступа, как если бы вы писали в другие случайные папки или в расположение внутри пакета приложений.

Вы можете сделать это и сохранить свой код кросс-платформенным, покупая такие файлы, как этот.

import platform
import os

if platform.system() == 'Darwin': # We're on a mac
        # Store the saved rates in the users home dir - note the dot at the start
        # of the filename to keep the file hidden
        home = os.path.expanduser("~")
        filename = os.path.join(home, '.myHiddenLogger')

else: # We're on another platform, create whatever filename you were using before
        filename = 'myLogger'

Что касается файла конфигурации, этот ответ здесь расскажет вам, как связать файл ресурсов в вашем приложении. Если вы хотите записать что-то в этот файл конфигурации и сохранить его для следующего раза, вам придется сохранить его как скрытый файл, такой как регистратор — это предотвратит сбой приложения из-за ошибок разрешения при попытке записи в файл внутри комплекта приложений.

person Ashok Fernandez    schedule 16.10.2013
comment
В моем приложении я вызываю веб-сервисы и аутентификацию через веб-браузер и webbrowser.open(). Я читаю файлы конфигурации для пути и IP-адреса сервера. Также я хочу изменить IP-адрес СЕРВЕРА, если это необходимо, после того, как приложение будет установлено на MAC. Возможно ли все через py2app - person user2877960; 16.10.2013
comment
Да, вы должны включить исходный файл конфигурации в качестве файла ресурсов при создании приложения с помощью командной строки -resources. вариант при создании файла setup.py с помощью py2applet. Затем, когда ваша программа запускается, она может проверить, находится ли скрытый файл конфигурации в домашнем каталоге пользователя, и если нет, она создаст его, который является копией того, который вы включили в пакет. Теперь этот скрытый можно прочитать и обновить с помощью нового IP-адреса сервера, если это необходимо, и конфигурация каждого пользователя на этой машине будет уникальной для них. - person Ashok Fernandez; 17.10.2013
comment
Кроме того, пользователь может перемещать пакет приложений и запускать его из любого места, и вам не нужно беспокоиться о том, чтобы попытаться выяснить, где находится файл конфигурации — он всегда будет скрыт в их домашнем каталоге. - person Ashok Fernandez; 17.10.2013
comment
Я очень ценю ваше предложение. Я сохранил свои setup.py,myapp.py cc.icns,config.cfg в папке user/fis/Desktop. Затем создается папка dist и build. Внутри dist присутствует myapp с нужным логотипом. В Ресурсах присутствует файл config.cfg. Это приложение в основном похоже на блокнот++. Итак, когда вы устанавливаете это приложение и дважды щелкаете по любому файлу, файл должен открываться с этим приложением. - person user2877960; 17.10.2013
comment
Теперь, когда я нажимаю на myapp в dist, он показывает ошибку консоли, терминала. Затем я выбрал любой файл и попытался открыть с помощью myapp. Он показывает эту ошибку. 255. Итак, нужно ли мне устанавливать это приложение? Если да, то как? В коде pyhton я передаю файл config.cfg и нужный файл для открытия в качестве аргумента. Кроме того, myapp отсутствует в расположении приложения на Mac. Пожалуйста, ответьте - person user2877960; 17.10.2013
comment
Мне нужно больше деталей, чтобы помочь вам понять, в чем проблема. Вероятно, лучше открыть другой вопрос со всеми подробностями о том, что происходит. - person Ashok Fernandez; 17.10.2013
comment
Цель моего приложения - открыть файл так же, как это делает блокнот ++. В Windows через py2exe я создал файл .exe и установил его в систему. Итак, когда это приложение установлено, а затем, если вы дважды щелкните любой файл, файл откроется. Точно так же я делаю в mac osx. Итак, как установить это на Mac, myapp.app, который создается в папке dist. - person user2877960; 17.10.2013
comment
Я передаю имя файла, который я хочу открыть через это приложение, и файл config.cfg в качестве аргумента в коде. Как с этим бороться в приложении, которое генерируется в папке dist. В файле setup.py я дал файл config.cfg. Итак, в ресурсах приложения присутствует файл config.cfg. Теперь ошибка приходит, список вне индекса - person user2877960; 17.10.2013