Français
Ouvrir dans Telegram

Fil de discussionПриклад збірки PyQt6 проєкту PyInstaller-ом.

3 messages · –
P
Приклад збірки PyQt6 проєкту PyInstaller-ом. Якщо Ви все-таки наважилися зібрати свій проєкт pyinstaller у exe пропоную розглянути приклад. Як приклад будемо використовувати мій шаблон для PyQt6 Шаблон дуже простий - показує просте вікно. Він має файли які задані відносними шляхами: 1️⃣ Одна з переваг Qt - використання файлів "форм" формату *.ui в даному випадку це - main_window.ui 2️⃣ icon.png це іконка у головному вікні, вона задана main_window.ui через дизайнер "форм" QtDesiginer Напишемо pyinstaller_build.bat скрипт який буде займатись збіркою у exe SET SCRIPT_NAME=main.py SET EXE_NAME=prog .venv\Scripts\pyinstaller.exe ^ --add-data "main_window.ui;." ^ --add-data "icon.png;." ^ --icon "icon.ico" ^ --windowed ^ --onefile ^ --noupx ^ --name %EXE_NAME% ^ %SCRIPT_NAME% pause Як бачимо всі файли які використовуються програмою треба додавати опцією --add-data Також сам exe файл може мати іконку для цього має бути використана опція --icon але треба зауважити що формат іконки має бути саме .ico (png не підходить). Опція --windowed саме для GUI застосунків щоб сховати вікно консолі. Опція --onefile саме збірка у exe Опція --noupx збирати без upx стиснення. Але цього недостатньо, щоб наш додаток знаходив файли main_window.ui та icon.png при запуску треба змінювати робочу директорію (це треба робити на самому початку скрипта). try: import os, sys os.chdir(sys._MEIPASS) print(f"{sys._MEIPASS=}") except AttributeError: pass Атрибут _MEIPASS додається динамічно pyinstaller-ом - це тимчасова тека куди розпаковується проєкт Без цієї вставки коду буде помилка про те, що вказані файли відсутні. Також я додам скріншот з збіркою без опції --windowed щоб можна було побачити як виглядає sys._MEIPASS Додаткові файли будуть прикріплені у коментарях. #PyInstaller #PyQt6
👍4❤3
1 · 469 ·
  1. P
    Python Materials For Beginners Chat
    Fichier
    example.zip · 14 Ko · cliquez pour afficher
  2. P
    Python Materials For Beginners Chat
    Photo
    cliquez pour afficher
PPython Materials For Beginners ChatPython Materials For Beginners Chat@python_code_ua · groupe · Technologie
16membres3écrivent en 30 jours
Fil de la communauté Ouvrir dans Telegram

Un fil public ouvert issu de l'index de recherche ChatCrawler — « le Google du Telegram public » ; actualisé à mesure que la communauté est explorée. Les heures sont en UTC.

Contenu public uniquement, API officielle de Telegram. À propos · FAQ · Limites de l'index · Retirer une page · Catalogue · Recherche · Comment nous comptons