Português
Abrir no Telegram

TópicoПриклад збірки PyQt6 проєкту PyInstaller-ом.

3 mensagens · –
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
    Arquivo
    example.zip · 14 KB · clique para mostrar
  2. P
    Python Materials For Beginners Chat
    Foto
    clique para mostrar

Um feed público aberto do índice de busca ChatCrawler — “o Google do Telegram público”; atualizado à medida que a comunidade é rastreada. Horários em UTC.

Somente conteúdo público, API oficial do Telegram. Sobre · Perguntas frequentes · Limites do índice · Remover uma página · Catálogo · Busca · Como calculamos