Этот вопрос закрыт для ответов, так как повторяет вопрос Как сделать так, чтобы pyinstaller взял с собой все нужные файлы?
Bad-Coder
@Bad-Coder
Srenior Pityhon Developer

Ошибка Pyinstaller?

Существует три файла, ui.py, ui.ui, main.py, ui.ui - Интерфейс, ui.py - Интерфейс .py, main.py - Главный файл. При компиляции main.py => main.exe, все нормально но при запуске выдает ошибку ui.ui не найдено, а этот ui.ui интерфейс. Что делать?
  • Вопрос задан
  • 52 просмотра
Пригласить эксперта
Ответы на вопрос 1
@DollaR84
Для более точного понимания проблемы, необходима строка команды компиляции. Но скорее всего вы не включили данный файл интерфейса в сборку.
Я уже отвечал на подобный вопрос: Как сделать так, чтобы pyinstaller взял с собой вс...
Если кратко, то надо специальным параметром добавить файл в сборку, а в коде проверять атрибут frozen модуля sys и если он установлен, то путь текущего каталога брать отсюда: sys._MEIPASS

Более подробно:
Для добавления сторонних файлов используются следующие параметры:
--add-data - для добавления текстовых файлов данных;
--add-binary - для добавления бинарных данных.
Правило добавления: имя-файла;имя_папки
А в в самом скрипте необходимо задать следующую функцию:
import os
import sys
def resource_path(relative_path):
    """ Get absolute path to resource, works for dev and for PyInstaller """
    if getattr(sys, 'frozen', False):
        base_path = sys._MEIPASS
    else:
        base_path = os.getcwd()
    return os.path.join(base_path, relative_path)


Ну и конечно во всем коде, где происходит открытие данных файлов, надо задавать путь к ним через данную функцию.
Ответ написан
Ваш ответ на вопрос

Вопрос закрыт для ответов и комментариев

Потому что уже есть похожий вопрос.
Похожие вопросы