2

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

eyllanesc
  • 235,170
  • 19
  • 170
  • 241
MalteHerrmann
  • 198
  • 1
  • 14
  • Is there no advice at all? I know and have used many little `.exe` tools, that just come in one file and have no installation process. You can just open them and the script executes. **How are these applications created?** Is there any way to do this with `python` or would I have to look into, say, `C++` to achieve this? THANKS! – MalteHerrmann Oct 10 '18 at 08:27

1 Answers1

1

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.

Michael Herrmann
  • 4,832
  • 3
  • 38
  • 53