@artshelom

При сборке проекта пропадает картинка, как исправить?

Делаю сборку через pyinstaller и в ней проподает картинки которые я прикрепил к qlabel'у, при сборке оказывается другой путь до картинок. Есть ли возможность загружать картинки в сам exe файл?
self.label_10.setPixmap(QtGui.QPixmap("sun.png"))

Как это лечиться??
  • Вопрос задан
  • 1113 просмотров
Решения вопроса 1
Когда я собирал свой проект в один файл (--onefile) через pyinstaller, помиимо использования resource_path (как уже написал Andy_U) я картинки также прописывал и в my_project.spec-файле в блоке datas в Analysis - datas=[('background.png', '.'), (...)...] - "загружать картинки в сам exe файл".

И уже после этого запускал на сборку изменённый spec: "pyinstaller my_project.spec" - тогда всё работало.

Если нужны подробности или пример - напишу дополнительно.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@Andy_U
Сначала добавьте в код функцию:

def resource_path(relative):

    if hasattr(sys, '_MEIPASS'):
        return os.path.join(sys._MEIPASS, relative)
    else:
        return os.path.join(os.path.abspath("."), relative)


а потом обращайтесь к ресурсам примерно так:

self.setWindowIcon(QtGui.QIcon(resource_path('runcubit_gui.ico')))
self.tray_icon.setIcon(QtGui.QIcon(resource_path('runcubit_gui.ico')))


Это будет работать и при прямом вызове питоновского скрипта, и после PyInstaller'а.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы