#python #macos #plotly-dash #cx-freeze
Вопрос:
Я пытаюсь упаковать скрипт python для macOS с помощью cx_freeze. Когда я бегу
python setup.py build
Исполняемый файл внутри сборки работает, но он запускает терминал. Я хочу упаковать скрипт в .app и применить настройки, такие как значок и т. Д.
Для этого, когда я использую
python setup.py bidet_mac
Мое .приложение создано, но при запуске оно выходит из строя. Ошибка заключается в следующем —
Тип исключения: EXC_BAD_ACCESS (Недопустимая подпись кода) Коды исключений: 0x0000000000000032, 0x000000010078c000 Примечание об исключении: EXC_CORPSE_NOTIFY
Причина завершения: Кодовое ПРОЕКТИРОВАНИЕ пространства имен, Код 0x2
Вот мой setup.py
from setuptools import find_packages
from cx_Freeze import setup, Executable
import pkg_resources
from os.path import join, basename
def collect_dist_info(packages):
"""
Recursively collects the path to the packages' dist-info.
"""
if not isinstance(packages, list):
packages = [packages]
dirs = []
for pkg in packages:
distrib = pkg_resources.get_distribution(pkg)
for req in distrib.requires():
dirs.extend(collect_dist_info(req.key))
dirs.append((distrib.egg_info, join('Lib', basename(distrib.egg_info))))
return dirs
options = {
'build_exe': {
'packages': [
'asyncio', 'flask', 'jinja2', 'dash', 'plotly', 'pkg_resources'
],
"include_files": collect_dist_info("brotli"),
'excludes': ['tkinter']
},
'bdist_mac': {
'iconfile': 'logo_new.icns'
}
}
executables = [
Executable('app.py',
base=None,
targetName='built-app', icon='logo_new.icns')
]
setup(
name='built-app',
packages=find_packages(),
version='0.2',
description='test',
executables=executables,
options=options
)