简体中文
Telegram

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

3 条消息 · –
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
    文件
    example.zip · 14 KB · 点击显示
  2. P
    Python Materials For Beginners Chat
    照片
    点击显示

来自搜索索引的公开信息流 ChatCrawler ——“公开 Telegram 的 Google”;随着该社群被抓取而更新。 时间为 UTC。

仅限公开内容,使用 Telegram 官方 API。 关于 · 常见问题 · 索引限制 · 移除页面 · 目录 · 搜索 · 计算方法