Building executables with pyinstaller

EVA uses pyinstaller to freeze the python project into an executable which contains all requirements and dependencies needed to run. (This is why having a c++ compiler installed is needed). The EVA.spec file specifies all the settings and parameters we want for the executable. Pyinstaller has two different modes it can use when creating the executable, either a single executable (one-file mode) or a folder containing the executable and some dependencies (one-folder mode). This project uses the one-folder mode, as it is easier to debug.

To build the executable, you just need to run

pyinstaller EVA.spec

which will generate the executable under dist/main/EVA.exe.

Pyinstaller will produce an executable type depending on the platform the pyinstaller command is ran on. Building with pyinstaller has only been tested for Windows, but it should work for MacOS and Linux too.

Automatically building executables

There is a github action set up to automatically run pyinstaller every time a new pull request is made (under .github/workflows). To get the latest executable after a pull request, you can download it from the actions tab.