Проблемы с удалением программы в cx_freeze

У меня программа создает доп. файлы preferences.txt, preferences2.txt, config.ini. Но при попытке удалить файлы, я наблюдаю только то, что файлы из самой программы (lib, share, calculator.exe и т.д) удаляются, но не выше указанные файлы.

Я спросил у GigaChat, он мне предоставил следующий код:

from cx_Freeze import setup, Executable
import os

# Заданная версия в setup.py
app_version = "7.8.10.7"  # Здесь указывается версия сборки

# Чтение версии из setup.py и запись в version.txt
version_file = "version.txt"
with open(version_file, "w") as f:
    f.write(app_version)

# Базовые настройки сборки
app_name = "Рас. Калькулятор"    # Название вашего приложения
base_executable = "Win32GUI"     # Тип приложения (GUI или консольное); None - консольный режим
icon_path = "calculator.ico"     # Путь к иконке приложения (если есть)

# Скрипт главного модуля
executable = Executable(
    script="tests.py",        # Главный файл сценария
    base=base_executable,     # Режим исполнения (None для консольного режима)
    icon=icon_path,           # Путь к иконке (если есть)
    target_name="calculator.exe",     # Имя генерируемого .exe файла
    shortcut_name="Рас. Калькулятор", # Имя ярлыка
    shortcut_dir="ProgramMenuFolder"  # Каталог для ярлыка (ProgramMenuFolder - меню "Пуск")
)

# Параметры сборки
options = {
    "build_exe": {
        "packages": [
            "tkinter",      # Необходим для GUI
            "sympy",        # Символьные вычисления
            "PIL",          # Pillow для изображений
            "configparser",   # Конфигурационные файлы
            "settings_panel", # ВАЖНО: добавляем ваш собственный модуль!
            "matplotlib",   # Матплотлиб для графиков
            "numpy"         # Нампай для массивов и математики
        ],
        "includes": [],                    # Дополнительные модули, если нужны
        "include_files": ["version.txt", "settings_icon.png"],    # Добавляем файл version.txt
        "zip_include_packages": [],        # Упаковка всех пакетов в архив
        "optimize": 2,                     # Уровень оптимизации байт-кода (может уменьшить размер)
        "install_dir": "C:/Program Files/Рас. Калькулятор"  # Путь для установки по умолчанию
    },
    "bdist_msi": {
        "upgrade_code": "{66666666-6666-6666-6666-666666666666}",  # Уникальный идентификатор обновления
        "add_to_path": False,  # Не добавлять в PATH
        "uninstall_files": [
            "preferences.txt",
            "preferences2.txt",
            "config.ini"
        ]  # Файлы, которые должны быть удалены при деинсталляции
    }
}

# Настройка сборки
setup(
    name=app_name,
    version=app_version,
    description="Калькулятор с большим функционалом",
    executables=[executable],
    options=options
)

Но там ошибка:

error: error in setup script: command 'bdist_msi' has no such option 'uninstall_files'

Как правильно сделать? (используется python312, cx_Freeze 8.2.0)


Ответы (0 шт):