Python packaging isn't really any more difficult than Rust, C# or Go if you use pyinstaller [1]

A single executable is always just one "pyinstaller --onefile --noconsole main.py" away.

[1] https://pyinstaller.org/en/stable/usage.html