#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.