# -*- mode: python ; coding: utf-8 -*- # Сборка: uv run pyinstaller agr-assistent.spec --noconfirm # Результат: dist/agr-assistent/agr-assistent.exe (папка целиком переносима) from pathlib import Path import nvidia from PyInstaller.utils.hooks import collect_data_files, collect_dynamic_libs, collect_submodules datas = [ ("src/agr_assistent/default_config.yaml", "agr_assistent"), ("src/agr_assistent/default_commands.yaml", "agr_assistent"), ] datas += collect_data_files("silero_vad") datas += collect_data_files("faster_whisper") binaries = collect_dynamic_libs("vosk") + collect_dynamic_libs("ctranslate2") # cuBLAS и cuDNN для распознавания на видеокарте; путь к ним добавляет stt/whisper.py for package_dir in nvidia.__path__: for dll in Path(package_dir).glob("*/bin/*.dll"): binaries.append((str(dll), f"nvidia/{dll.parent.parent.name}/bin")) # num2words подключает языковые модули динамически hiddenimports = collect_submodules("num2words") a = Analysis( ["packaging/launcher.py"], pathex=["src"], binaries=binaries, datas=datas, hiddenimports=hiddenimports, excludes=["tkinter", "matplotlib", "IPython", "pytest"], noarchive=False, ) pyz = PYZ(a.pure) exe = EXE( pyz, a.scripts, [], exclude_binaries=True, name="agr-assistent", icon="packaging/icon.ico", console=False, upx=False, ) coll = COLLECT(exe, a.binaries, a.datas, name="agr-assistent", upx=False)