🚀 Сборка Windows .exe с uv - Medical Transcriber GUI
📋 Требования
- Windows 10+ (для запуска .exe)
- Python 3.9+ (для сборки)
- uv - modern Python package manager
- ~3 ГБ свободного места на диске
🔧 Установка uv
Способ 1: pip (рекомендуется)
pip install uv
Способ 2: Скачать с GitHub
https://github.com/astral-sh/uv#installation
Проверка установки
uv --version
🚀 Быстрая сборка (3 команды)
Способ 1: Автоматический скрипт (РЕКОМЕНДУЕТСЯ)
# Все в одну команду
python setup_and_build.py
Этот скрипт:
- ✅ Установит все зависимости через uv
- ✅ Установит PyInstaller
- ✅ Соберёт .exe приложение
- ✅ Выведет результат
Результат: dist\MedicalTranscriber.exe
Способ 2: Ручная сборка (Шаг за шагом)
1️⃣ Установить зависимости через uv
uv pip install -r requirements.txt
2️⃣ Установить PyInstaller
uv pip install pyinstaller>=6.0.0
3️⃣ Собрать приложение
python build_exe.py
Результат: dist\MedicalTranscriber.exe
Способ 3: Прямая команда PyInstaller через uv
uv run pyinstaller --onefile --windowed --name=MedicalTranscriber build_windows.spec
📊 Процесс сборки
1. Чтение requirements.txt
└─> PyQt6==6.10.0 ✓
└─> transformers ✓
└─> torch ✓
└─> ... остальные зависимости
2. Анализ приложения (PyInstaller)
└─> app/gui_app.py
└─> pipeline/medical_pipeline.py
└─> corrector/report_generator.py
└─> ... все модули
3. Сборка одного EXE файла
└─> Включение всех зависимостей
└─> Упаковка ресурсов
└─> Оптимизация размера
4. Результат
└─> dist/MedicalTranscriber.exe (✅ готово!)
Время сборки: 10-30 минут в первый раз
✨ Что используется
PyQt6 версия
PyQt6==6.10.0 ← Конкретная версия для совместимости
PyQt6-sip>=13.8.0 ← Поддержка bindings
uv особенности
- ⚡ Очень быстрая установка пакетов
- 🔒 Гарантированная версионность
- 📦 Простое управление окружением
- 🐍 Полная совместимость с pip
PyInstaller параметры
--onefile # Один исполняемый файл
--windowed # Без консоли (GUI приложение)
--name=... # Имя приложения
🎯 Проверка перед сборкой
1. Проверить наличие модели Whisper
# Должна быть папка с моделью
ls -la | grep -E "(model|safetensors)"
2. Проверить медицинские термины
# Файл должен существовать
cat medical_terms.txt | head -5
3. Проверить конфиг
# Должен быть config.json
cat config.json
🐛 Решение проблем
Проблема: "uv: command not found"
Решение:
pip install uv
uv --version # проверить
Проблема: "PyQt6 не совместим"
Решение:
# Переустановить точную версию
uv pip install --force PyQt6==6.10.0
Проблема: "Недостаточно памяти при сборке"
Решение:
# Закройте ненужные приложения
# Используйте float16 вместо float32 в настройках
Проблема: "Очень долгая сборка"
Решение:
# Это нормально для первой сборки (10-30 мин)
# Последующие будут быстрее благодаря кэшу
# Дождитесь завершения
Проблема: "ModuleNotFoundError при запуске .exe"
Решение:
- Скачайте модель Whisper
- Поместите в папку dist/ рядом с .exe
- В приложении укажите полный путь
📦 Размер и оптимизация
Типичный размер
- Первая сборка: ~500 МБ - 1.5 ГБ
- Почему так много?
- torch (PyTorch) - ~500 МБ
- transformers - ~200 МБ
- Другие зависимости - ~300 МБ
Уменьшение размера
Способ 1: Исключить CUDA (если не нужен GPU)
# В build_windows.spec, секция hiddenimports, удалить:
# 'torch.cuda',
Способ 2: Использовать UPX компрессию
# Скачайте UPX: https://upx.github.io/
# Затем:
uv pip install pyinstaller[speedups]
Способ 3: Использовать разделённую версию (--onedir)
python build_exe.py --onedir
# Результат: папка dist/MedicalTranscriber/ вместо одного файла
🚀 Распространение
Отправить кому-то
- Найти файл:
dist\MedicalTranscriber.exe - Отправить:
- По email (если размер позволяет)
- На USB флешку
- Скачать ссылку (GoogleDrive, Yandex.Disk и т.д.)
Создать установщик (опционально)
# Установите NSIS: https://nsis.sourceforge.io/
# Создайте installer.nsi (см. BUILD_EXE.md)
# Скомпилируйте
makensis installer.nsi
📈 Версионность
Обновления
Если обновили PyQt6
# Обновить requirements.txt
PyQt6==6.11.0 # новая версия
# Переустановить
uv pip install --force PyQt6==6.11.0
# Пересобрать
python build_exe.py
Если добавили новый модуль
# 1. Добавить в requirements.txt
# 2. Добавить в build_windows.spec (hiddenimports)
# 3. Пересобрать
python build_exe.py
✅ Готов к использованию?
Финальная проверка:
- uv установлен (
uv --version) - requirements.txt скачан
- Модель Whisper присутствует
- medical_terms.txt существует
- config.json скачан
Тогда просто запустите:
# Всё в одной команде
python setup_and_build.py
# И ждите результата в dist/MedicalTranscriber.exe
📞 Справка
Документация
- BUILD_EXE.md - Полная инструкция по сборке
- USER_GUIDE.md - Руководство пользователя
- APP_ARCHITECTURE.md - Архитектура приложения
Ссылки
- uv документация: https://docs.astral.sh/uv/
- PyInstaller документация: https://pyinstaller.org/
- PyQt6 6.10: https://www.riverbankcomputing.com/software/pyqt/
Всё готово! Начните сборку прямо сейчас! 🚀
python setup_and_build.py