Добавлены параметры для сборки программы в исполняемый файл

This commit is contained in:
Alex
2025-06-28 02:15:41 +03:00
parent 0c270a6cb1
commit 134aa88f22
3 changed files with 78 additions and 2 deletions

4
.gitignore vendored
View File

@@ -1,3 +1,3 @@
/.venv/
/.venv1/
/.venv3/
/setup.py
/build_cx/

BIN
icon.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 131 KiB

76
setup.py Normal file
View File

@@ -0,0 +1,76 @@
# 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
)