Python — разрешение для приложений и операционных систем

#python #pyinstaller

Вопрос:

Предыстория: Я пытаюсь превратить свой скрипт в приложение для конечного пользователя, которое можно было бы использовать независимо от того, установлен ли у конечного пользователя Python.

После долгой первоначальной борьбы мне удалось создать приложение с помощью модуля PyInstaller (я не преуспел с Py2App и Утконосом, даже потратив несколько часов на поиск в Google и просмотр сообщений здесь, на SO).

Хотя окончательное приложение, созданное PyInstaller, работает, оно не может создавать или изменять какие-либо файлы. Например, простой метод:

    def save_xml(data):

        file_name = self.party_a_ICO_value.get()
        file_path = "ID_data/"   file_name   ".xml"
        f = open(file_path,"w")
        f.write(data)
        f.close()
 

это отлично работает на этапе сценария, не создает файл после преобразования сценария в приложение.

Что еще более странно, так это то, что он не возвращает никаких ошибок (разрешения на файл или других), хотя в коде не используется обработка ошибок. Он просто не создает / не изменяет соответствующий файл и завершается без каких-либо ошибок.

Вышесказанное относится как к Mac, так и к Windows. Я полагаю, что приложению не разрешено создавать / изменять файлы операционной системой. Я предполагаю, что приложение нужно будет не только создать, но и выполнить весь процесс установки (который, предположительно, включает получение разрешений операционной системы).

Вопрос: Есть ли способ превратить скрипт Python в функциональное приложение, которое может создавать / изменять файлы (по крайней мере, в каталоге, в котором находится приложение)?

Спасибо!

Комментарии:

1. Какую команду вы используете для создания exe-файла? Вы используете --onefile флаг?

2. Спасибо за ваш ответ, да, я использую флаг —onefile.