Приложение не запускается после сборки с помощью cx_Freeze в OSX

#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
 

Что в конечном счете решило эту проблему для меня, так это чтение этой темы

https://github.com/jiansoung/issues-list/issues/13