# setup.py import sys import os from cx_Freeze import setup, Executable # --- Основные настройки --- # Имя вашего основного скрипта main_script = "main.py" # Замените на имя вашего основного Python-файла # Имя вашего приложения (исполняемого файла без расширения) exe_name = "AnabasisHRChatManager" # --- Платформо-зависимые настройки --- # Определяем базовый тип приложения и имя конечного файла base = None target_name = exe_name icon_path = "icon.ico" # Путь к иконке по умолчанию if sys.platform == "win32": # Для графических приложений на Windows (консоль не будет открываться) base = "Win32GUI" # Добавляем расширение .exe для Windows target_name = f"{exe_name}.exe" elif sys.platform == "darwin": # macOS base = "MacOSX" # Иконки для macOS имеют формат .icns # icon_path = "icon.icns" elif sys.platform.startswith("linux"): # Linux # Для Linux обычно не требуется специальный 'base' # Иконки могут быть в формате .png или .xpm # icon_path = "icon.png" pass # Оставляем base = None # --- Опции сборки --- # Общие опции сборки для всех платформ build_exe_options = { # 'packages' - список пакетов для обязательного включения. "packages": ["os", "sys", "requests", "json", "webbrowser"], # 'excludes' - список пакетов для исключения. "excludes": ["tkinter", "unittest", "PyQt5.QtWebEngineWidgets"], # 'include_files' - список дополнительных файлов или папок. # Формат: [('источник', 'назначение_в_сборке')] "include_files": [], # Например: ["resources/", "config.ini"] # 'build_exe' - папка для выходных файлов "build_exe": f"build_{sys.platform}", # Создаём отдельную папку для каждой ОС } # Опции, специфичные для Windows if sys.platform == "win32": build_exe_options["include_msvcr"] = True # Включаем C++ Runtime Library # --- Определение исполняемого файла --- executables = [ Executable( script=main_script, base=base, target_name=target_name, # Имя конечного файла icon=icon_path # Путь к файлу иконки ) ] # --- Настройка метаданных и запуск сборки --- setup( name=exe_name, version="1.2", description="Управление чатами для HR-менеджеров", options={ "build_exe": build_exe_options }, executables=executables )