#python #python-3.x #build #cx-freeze
Вопрос:
Я пытаюсь создать простое приложение на OSX, используя cx_Freeze. Сборка с использованием setup.py кажется, все идет нормально — он создает файл .dmg и .app для моего приложения вместе со всеми исходными файлами. Однако, когда я пытаюсь запустить .app, он немедленно вылетает, сообщая: «My_App неожиданно вышел». К сожалению, я не вижу никаких расшифровываемых кодов ошибок, которые я мог бы отследить.
Я разделил приложение на очень простой пример. Ниже приведены мой основной файл python и мой установочный файл.
my_app.py
from tkinter import *
root = Tk()
root.title("Welcome to My_App")
root.geometry('350x200')
root.mainloop()
setup.py
import sys
from cx_Freeze import setup, Executable
# Dependencies are automatically detected, but it might need fine tuning.
build_exe_options = {"packages": [], "excludes": []}
# base="Win32GUI" should be used only for Windows GUI app
base = None
if sys.platform == "win32":
base = "Win32GUI"
setup(
name = "My_GUI",
version = "1.0",
description = "My GUI application!",
options = {"build_exe": build_exe_options},
executables = [Executable("my_app.py", base=base)]
)
Я уже создавал файл .exe в Windows раньше, и когда в Windows происходит сбой при запуске, я, по крайней мере, получаю сообщение об ошибке отслеживания, которое я могу отследить. В OSX, похоже, это не то же самое.
Что происходит не так? Как я могу получить дополнительную информацию о том, почему мое приложение не запускается? Ниже приведены изображения моей сборки и ошибки, которую я получаю при запуске.
Ответ №1:
Хорошо, оказывается, если я запускаю файл из терминала, он выводит фактический код ошибки. Оттуда я смог отследить, что у меня не был установлен zlib. Я получал сообщение об ошибке
zipimport.ZipImportError: can't decompress data; zlib not available
Что в конечном счете решило эту проблему для меня, так это чтение этой темы