# setup.py import sys import os from cx_Freeze import setup, Executable # Определите имя вашего основного скрипта main_script = "main.py" # Замените на имя вашего основного Python-файла # Определите имя исполняемого файла exe_name = "AnabasisHRChatManager" # Имя вашего .exe файла # Определите базовый тип приложения: # - None: Для консольных приложений (консоль будет открываться) # - "Win32GUI": Для графических приложений на Windows (консоль не будет открываться) # - "MacOSX": Для графических приложений на macOS base = None if sys.platform == "win32": base = "Win32GUI" # Для оконных приложений на Windows без консоли elif sys.platform == "darwin": # Для macOS base = "MacOSX" # Определите опции сборки. # Это словарь, который настраивает, какие пакеты включать/исключать, # какие файлы добавлять и другие параметры. build_exe_options = { # 'packages' - список пакетов, которые cx_Freeze должен гарантированно включить. # Это полезно для пакетов, которые динамически импортируются или не обнаруживаются автоматически. "packages": ["os", "sys", "requests", "json", "webbrowser"], # Пример: добавьте сюда любые используемые библиотеки # 'excludes' - список пакетов, которые cx_Freeze должен исключить. # Это помогает уменьшить размер сборки, исключая ненужные модули. "excludes": ["tkinter", "unittest", "PyQt5.QtWebEngineWidgets"], # Пример: исключаем tkinter, если не используется # 'include_files' - список дополнительных файлов или папок, которые нужно включить в сборку. # Это могут быть изображения, конфигурационные файлы, FXML-файлы (для JavaFX, не Python) и т.д. # Формат: [('источник', 'назначение_в_сборке')] или просто ['путь/к/файлу_или_папке'] # Например, если у вас есть папка 'resources' с иконками или другими данными: # "include_files": ["resources/", "config.ini"], # Если иконка находится в корне: "include_files": [], # Добавьте сюда любые ресурсы # 'include_msvcr' - для Windows, включает C++ Runtime Library (CRT) # Часто необходимо для работы некоторых нативных модулей Python. "include_msvcr": True, # 'optimize' - уровень оптимизации (0, 1, 2). 2 - максимальная оптимизация, но может быть медленнее. # "optimize": 0, # 'zip_include_packages' - упаковывать ли пакеты в zip-файл внутри исполняемого файла. # Уменьшает количество файлов, но может увеличить время запуска. # По умолчанию cx_Freeze упаковывает большинство пакетов. # "zip_include_packages": ["*"], # 'build_exe' - папка для выходных файлов "build_exe": "build_cx", } # Определите исполняемые файлы executables = [ Executable( script=main_script, base=base, target_name=f"{exe_name}.exe", # Имя конечного .exe файла icon="icon.ico" # Путь к файлу иконки .ico # Для создания ярлыков в меню "Пуск" можно использовать shortcut_name и shortcut_dir здесь. # Например: # shortcut_name=exe_name, # shortcut_dir="StartMenuFolder" # Создаст ярлык в меню "Пуск" в корневой папке приложения ) ] # Настройте метаданные вашего приложения setup( name=exe_name, version="0.1", description="Управление чатами для HR-менеджеров", options={ "build_exe": build_exe_options }, executables=executables )