This project includes a small PyInstaller setup for standalone binaries.
Script:
scripts/install-netloader-x-binary.py
PyInstaller does not reliably cross-compile from one OS to another. Build on each target OS to get a native binary:
- Windows ->
.exe - Linux -> ELF binary
- macOS -> Mach-O binary
- Install build dependency:
pip install -r requirements-build.txt- Build in test mode (build only, no install changes):
python scripts/install-netloader-x-binary.py --mode test --clean-dist --verify- Output location:
- Build output:
bin/netloader-x(.exe)by default
-
--mode test: Build only. No PATH changes, no persistent config writes. -
--mode install: Build, then install:- choose destination (
local/binrecommended or custom) - add destination to PATH
- configure persistent output directory
- choose destination (
Default persistent output directory:
$HOME/netloader-x-output
You can override with --output-dir.
-
--onedir: Build a directory bundle instead of a single file. -
--name <value>: Change output binary name. -
--dist-dir <path>: Choose build output directory (default:bin). -
--work-dir <path>: Choose PyInstaller work directory. -
--clean-dist: Remove previousdist/andbuild/outputs before building. -
--verify: Run the built binary with--versionafter build.
One-file build:
python scripts/install-netloader-x-binary.py --mode test --clean-dist --verifyInstall mode (interactive):
python scripts/install-netloader-x-binary.py --mode install --clean-distInstall mode (non-interactive with explicit paths):
python scripts/install-netloader-x-binary.py --mode install --non-interactive --destination ~/.local/bin --output-dir ~/netloader-x-outputA CI workflow is included at:
/.github/workflows/build-binaries.yml
It builds binaries on Windows, Linux, and macOS, then uploads artifacts.