EasyScience / EasyDiffractionApp

Diffraction data analysis application
https://easydiffraction.org
BSD 3-Clause "New" or "Revised" License
4 stars 1 forks source link

EXPLORE: cx_freeze as an alternative to PyInstaller #180

Open rozyczko opened 2 years ago

rozyczko commented 2 years ago

From https://jira.esss.lu.se/browse/DAS-193

Currently, PyInstaller is used to create a stand alone app bundle of easyDiffraction. However, it has a number of drawbacks:

Squish doesn’t work with mac app bundle created by PyInstaller, so testing the GUI is currently not possible on macOS. PyInstaller fails to create a working app bundle for Linux (Ubuntu) PyInstaller includes unused Qt modules, such as QtWebEngine (QtWebEngineCore is about 125Mb), etc. A simple attempt to exclude them from the created bundle with the ‘--exclude-module=‘ key failed (although this works for pure python modules, such as numpy). A promising alternative to PyInstaller is cx_freeze, which can be imported as Python module and thus allows to create stand alone app via python script. It also seems to be more customizable.

One should try to create a simple project based on Python+QML and see if one could overcome the above mentioned drawbacks with cx_freeze.

Additionally, cx_freeze supports Qt6, while pyinstaller only has partial support (Nov 2021)

rozyczko commented 2 years ago

Also, it might be interesting to look at https://nuitka.net/