Italiano
Apri in Telegram

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

3 messaggi · –
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
    File
    example.zip · 14 KB · tocca per mostrare
  2. P
    Python Materials For Beginners Chat
    Foto
    tocca per mostrare
PPython Materials For Beginners ChatPython Materials For Beginners Chat@python_code_ua · gruppo · Tecnologia
16membri3scrivono in 30 giorni
Feed della community Apri in Telegram

Un feed pubblico aperto dall'indice di ricerca ChatCrawler — «Google per il Telegram pubblico»; si aggiorna man mano che la community viene scansionata. Orari in UTC.

Solo contenuti pubblici, API ufficiale di Telegram. Informazioni · FAQ · Limiti dell'indice · Rimuovi una pagina · Catalogo · Ricerca · Come calcoliamo