Я делаю приложение на питоне, которое может открывать разные типы файлов. Этот код отлично работает в eclipse при передаче имени файла, который я хочу открыть, и файла конфигурации в качестве аргументов соответственно. Теперь я преобразовал это в приложение с помощью py2app. Таким образом, проблема заключается в том, как работать с аргументами, так как файлы разных типов должны открываться через приложение, и этому приложению также требуется файл конфигурации во время обработки. Существуют ли какие-либо другие методы для создания приложения, которое можно установить на Mac OSX.
Как создать установщик для mac osx
Ответы (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'
Что касается файла конфигурации, этот ответ здесь расскажет вам, как связать файл ресурсов в вашем приложении. Если вы хотите записать что-то в этот файл конфигурации и сохранить его для следующего раза, вам придется сохранить его как скрытый файл, такой как регистратор — это предотвратит сбой приложения из-за ошибок разрешения при попытке записи в файл внутри комплекта приложений.