Files
AnabasisChatRemove/setup.py

77 lines
4.7 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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
)