Gabryelf / Gabryelf/Tools-Progs
Issue #4: Сборка EXE и создание релиза
- Dominant language
- Python
- Stars
- 0
- Forks
- 0
- PR merge metrics
- No merged PRs in 30d
Description
# 🚀 Сборка исполняемого файла
## Описание:
Настроить сборку проекта в исполняемый .exe файл для распространения среди пользователей без установки Python.
## Задачи
- [x] Настроить PyInstaller для сборки проекта
- [x] Создать спецификацию .spec файла с правильными путями
- [x] Включить все зависимости в сборку (OpenCV, PyQt5, sounddevice)
- [x] Оптимизировать размер исполняемого файла (использовать UPX)
- [x] Настроить иконку приложения
- [x] Создать скрипт build.bat для автоматической сборки
- [x] Добавить информацию о версии в свойства файла
# Технические детали
## Команда сборки:
```bash
pyinstaller --onefile --windowed --name "ScreenRecorder" --icon=icon.ico --add-data "core;core" --add-data "gui;gui" --add-data "config;config" main.py
```
build.bat:
```batch
@echo off
echo 🚀 Сборка Screen Recorder...
echo.
```
REM Установка зависимостей
```
pip install -r requirements.txt
```
REM Сборка
```
pyinstaller screen_recorder.spec
```
REM Копирование в папку релиза
```
if exist dist\ScreenRecorder.exe (
copy dist\ScreenRecorder.exe releases\
echo ✅ Сборка завершена! Файл: releases\ScreenRecorder.exe
) else (
echo ❌ Ошибка сборки!
pause
)
```
.spec файл:
```python
# screen_recorder.spec
block_cipher = None
a = Analysis(
['main.py'],
pathex=[],
binaries=[],
datas=[
('core', 'core'),
('gui', 'gui'),
('utils', 'utils'),
('config', 'config')
],
hiddenimports=[
'sounddevice',
'soundfile',
'cv2',
'numpy',
'PyQt5',
'moviepy'
],
hookspath=[],
hooksconfig={},
runtime_hooks=[],
excludes=[],
win_no_prefer_redirects=False,
win_private_assemblies=False,
cipher=block_cipher,
noarchive=False,
)
pyz = PYZ(a.pure, a.zipped_data, cipher=block_cipher)
exe = EXE(
pyz,
a.scripts,
a.binaries,
a.zipfiles,
a.datas,
[],
name='ScreenRecorder',
debug=False,
bootloader_ignore_signals=False,
strip=False,
upx=True,
upx_exclude=[],
runtime_tmpdir=None,
console=False,
disable_windowed_traceback=False,
argv_emulation=False,
target_arch=None,
cofile=None,
icon='icon.ico',
)
```
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.