简体   繁体   中英

.exe generated with pyinstaller crashes on other PCs - how to create .exe with TRULY no dependencies?

I have generated an .exe -file for a little PowerPoint Tool, that I've written using python 3.6 , the PyQt5 framework and pyinstaller . The program runs without any errors on my own laptop and functions as expected.

Unfortunately, I can't get the .exe to run on a different computer. I've tried with 2 other computers now and get different errors on each of them.

PC 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.

PC 2 :

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

The thing, that bugs me is, that I had this last error (from PC2) during development on my dev computer, but fixed this problem for my own PC. What I was trying to do is create an .exe-file that just runs on any PC. It's a simple PowerPoint Helper, which is supposed to be a quick tool to create new slides from a folder of images. That is why it's pretty important, that it can be seamlessly used. Ideally just opening the .exe and go, without the need to worry about individual missing pieces on every single computer, where it will be utilized.

BIG QUESTION: Is there anything I can do, to guarantee my .exe to include all the dependencies that are needed to run?


Things I've tried (aka I DID try to solve it myself.. for days):

read trough here: https://github.com/pyqt/python-qt5/issues/2

changed my .spec as mentioned here: https://github.com/carlosperate/pyinstaller-test/blob/master/package/pyqt5_test.spec

read through all of this: https://stackoverflow.com/search?page=2&tab=Relevance&q=entry%20point%20not%20found

and this: https://stackoverflow.com/search?q=qt+platform+windows

and this: pyinstaller exe without any dependencies?

But nothing helps.... Most of the posts address problems when compiling the executable file, but this works just fine for me.

If using Python 3.5, PyInstaller 3.3.1 and PyQt 5.9.2 is an option for you, use fbs instead of PyInstaller to freeze your application. It is based on PyInstaller but solves edge cases like the one you are experiencing. There are instructions for setting up your app for use with fbs here .

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM