sanya84
@sanya84
Фанатик Python 3

PyInstaller PyQt5 как добавить ui файл?

HELP! Всем привет ! Собираю file.py в EXE pyinstaller file.py --onefile --noconsole
--add-data file.ui
Всё собирается
В Папке dist запускаю EXE
пишет fatal error!
но когда добавляю file.ui в dist работает как надо
но это уже не один EXE )
вопрос как в EXE запихать file.ui
  • Вопрос задан
  • 3598 просмотров
Решения вопроса 1
@Andy_U
Фу, только сейчас сообразил, ui файл нужно же сначала в питон преобразовать командой:

pyuic5.exe xxx.ui -o xxx_window.py -x -d

потом проимпортировать, а уже потом подсовывать pyinstaller'у.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@akonovalov
Программист на компьютере
Вообще, в документации к PyInstaller есть про опцию --add-data и про то, как собранный бинарник будет работать с прицепленными данными данных в рантайме. Как для винды - в душе не чаю, ну у меня в одном проектике под убунтой вот такая функция для извлечения файлов из папки data:

def bundle_data_path(path):
    if getattr(sys, 'frozen', False):
        bundle_dir = sys._MEIPASS
    else:
        bundle_dir = os.path.join(
            os.path.dirname(os.path.abspath(__file__)),
            'data'
        )

    return os.path.join(bundle_dir, path)

...
        # work with data.json
        with open(bundle_data_path('data.json')) as data_file:
            data = json.load(data_file)
            list1 = data['list1']
            list2 = data['list2']
Ответ написан
Ваш ответ на вопрос

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

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