Skip to content

Conversation

lukesms
Copy link

@lukesms lukesms commented Sep 16, 2025

No description provided.

This commit adds the necessary changes to build a portable, single-file executable for the `pyfa` application using PyInstaller.

The initial attempt to use PyOxidizer was unsuccessful due to persistent build failures related to the `wxPython` dependency. The build environment could not compile `wxPython` from source within the time limits, and no compatible pre-compiled wheels were available on PyPI.

The successful approach involved pivoting to PyInstaller and solving the `wxPython` dependency by using the official `wxPython` extras repository. The `requirements.txt` file was updated to use a compatible version of `wxPython` (4.2.2) available as a binary wheel for Ubuntu 24.04.

The `tox.ini` file was also updated to be compatible with the current environment, allowing the linter to run successfully.
The `pyoxidizer.bzl` file in the repository was a placeholder that only produced a "hello world" executable. This commit replaces it with a complete build configuration that correctly packages the pyfa application.

The new configuration is based on the existing `pyfa.spec` file for PyInstaller and includes:
- The main application entry point (`pyfa.py`).
- All necessary Python source files.
- Data files such as images, licenses, and static data.

This allows building a functional, self-contained executable using `pyoxidizer build`.

Note: The test suite could not be run due to issues installing the `wxPython` dependency in the testing environment. The build from source timed out, and no pre-built wheels were available.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant