.exe, генерируемый с помощью pyinstaller, дает сбой на других ПК - как создать .exe с TRULY без зависимостей? - PullRequest
0 голосов
/ 08 октября 2018

Я сгенерировал .exe -файл для небольшого инструмента PowerPoint, который я написал с использованием python 3.6, PyQt5 framework и pyinstaller.Программа работает без ошибок на моем ноутбуке и работает как положено.

К сожалению, я не могу запустить .exe на другом компьютере.Я попробовал с 2 другими компьютерами сейчас и получаю разные ошибки на каждом из них.

ПК 1 :

Entry Point not found
The procedure entry point ucrtbase.terminate could not be
located in the dynamic link library api-ms-win-crt-runtime-l1-1-0.dll.

ПК 2 :

This application failed to start because it could not load the Qt platform plugin 'Windows'.

Единственное, что меня беспокоит, это то, что у меня была эта последняя ошибка (от PC2) во время разработки на моем компьютере разработчика, но я исправил эту проблему для моего собственного компьютера.Я пытался создать .exe-файл, который просто запускается на любом ПК.Это простой помощник PowerPoint, который должен быть быстрым инструментом для создания новых слайдов из папки изображений.Вот почему очень важно, чтобы его можно было без проблем использовать.В идеале нужно просто открыть .exe и идти, не беспокоясь об отдельных недостающих частях на каждом компьютере, где он будет использоваться.

БОЛЬШОЙ ВОПРОС: Могу ли я что-нибудь сделать, чтобыгарантировать, что в .exe включены все зависимости, необходимые для запуска?


Вещи, которые я пробовал (иначе я ДЕЙСТВОВАЛ, чтобы решить эту проблему самостоятельно ..в течение нескольких дней):

прочитайте здесь: https://github.com/pyqt/python-qt5/issues/2

изменил мой .spec как упомянуто здесь: https://github.com/carlosperate/pyinstaller-test/blob/master/package/pyqt5_test.spec

прочитайте все это: https://stackoverflow.com/search?page=2&tab=Relevance&q=entry%20point%20not%20found

и вот это: https://stackoverflow.com/search?q=qt+platform+windows

и вот это: pyinstaller exe без каких-либо зависимостей?

Но ничего не помогает .... Большинство постовустранять проблемы при компиляции исполняемого файла, но это прекрасно работает для меня.

1 Ответ

0 голосов
/ 10 октября 2018

Если вы используете Python 3.5, PyInstaller 3.3.1 и PyQt 5.9.2 - вариант для вас, используйте fbs вместо PyInstaller, чтобы заморозить ваше приложение.Он основан на PyInstaller, но решает крайние случаи, подобные тому, который вы испытываете.Инструкции по настройке вашего приложения для использования с fbs здесь .

...