@B3rn4dette

Как конвертировать .py (pyqt5) в .exe с изображениями?

Имеется код, который задействует две картинки. С начала делал в designer, потом немного доработал уже в python, запускал .py и картинки имелись, само собой. При конвертации в .exe файл картинки пропадают.
Пытался решить проблему использованием ресурсов, в котором указаны эти фотографии. Сами же фотографии непосредственно находятся в папке с main.py.
Решение нашел здесь - оверфлоу1.
И здесь подобный вопрос - оверфлоу2. Но, это не помогло мне, потому что в exe нет указанных фотографий.
  • Вопрос задан
  • 407 просмотров
Решения вопроса 1
@B3rn4dette Автор вопроса
Сам спросил, сам и ответил.

Во-первых, в самом .py файле нужно указать import resources, сражу же после импорта библиотек.
Зачем? Для того, чтобы в будущем код брал из этих resources указанные фотографии.

Во-вторых, не выходим из редактора кода и в тех строках, где указано расположение фотографий заменяем указанное расположение от pyqt5 на: ":/newPrefix/название вашей фотографии.указание расширения файла."
Зачем? Для того, чтобы код использовал указанную фотографию из тех же resources.

В-третьих, в той папке, где находится код мы создаем новый текстовый документ, в который мы пишем:
<RCC>
  <qresource prefix="newPrefix">
    <file>название фото.расширение</file>
  </qresource>
</RCC>

После чего, сохраняем его как(!) resources.qrc, выбирая, что новый тип файла будет не текстовиком, а всеми возможными типами.
Также, если фотографий несколько, можно добавить еще одну строку с <file>название фото.расширение</file> , между строкой с префиксом и строкой с /gresource, надеюсь вы поняли.
Что это и зачем? Здесь, мы указываем те самые нужные фотографии для кода, это, грубо говоря, можно назвать сундуком, только вместо золота - указание, где оно находится.

В-четвертых, вызываем командную строку из папки с кодом и resources.qrc и прописываем в ней pyrcc5 -o resources.py resources.qrc.
Зачем? Наш код не поддерживает чтение qrc файлов, по этому мы конвертируем qrc в py, чтобы код смог прочесть.

В-пятых. Я, на всякий случай, после того, как создался файл resources.py запускаю код, чтобы в папке с кодом создалась папка __pycache__. Просто, чтобы было, не знаю, влияет это или нет, можете пропускать этот шаг, как хотите.

В-шестых, вновь, в командной строке уже конвертируем наш код в exe файл!!! Для этого мы прописываем pyinstaller --onefile название вашего кода.py. Ждем пару минут и вуаля! Exe файл можно найти в папке dist.

P.S. Фотографии у меня находились в папке с кодом, по этому я не указывал для них путь, по этому, если у кого-то файлы будут, к примеру, на другом диске, то я не помогу вам.

Если будут какие-то вопросы, проблемы - постараюсь помочь, хоть мои знания в пайтоне ограничиваются обычным поиском ответов на форумах и методом тыка
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
mayton2019
@mayton2019
Bigdata Engineer
А если запускаешь exe - картинка видна?
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы