Hacker News
Self-contained highly-portable Python distributions
charliermarsh
|next
[-]
Most of our engineering time on the project over the past ~year and a half has been split into three buckets:
1. Keeping up with upstream CPython. (We're also hoping to upstream as much of this work as we can into CPython itself.)
2. Fixing any / all of the known "quirks" vis-a-vis CPython.
3. Making these distributions as fast as (or faster than) any other CPython distribution.
If you're interested, I wrote a bit about the why / how here when we took over maintenance of the project: https://x.com/charliermarsh/status/1864050698574311561
gooseyard
|root
|parent
|next
[-]
Despite those needs though, I eventually looked into the p-b-s builder and found that I couldn't make a serious argument against continuing to maintain our builder and all of the random crap that's needed to manage all the dependencies and using p-b-s. It solves all the same problems and after having switched to it a couple of years ago, my initial concerns about possibly needing to get changes upstreamed never became an issue as your folks pretty much always run into and fix stuff before I do and have been both really pragmatic and helpful in any of the discussions surrounding issues. I keep hoping for an opportunity to contribute something back since the project has really saved me a great deal of toil over the past year or two since adopting it.
I really like the model of treating the interpreter as just another runtime dependency, and after working in the Erlang universe for a few years I keep thinking there are some interesting opportunities for tooling related to bundling stripped-down versions of the runtime stuff along with an application rather than some of the more exotic approaches. Stuff like rebar/erlang.mk might be a nice pattern to study.
Anyhow if Indygreg is reading this, huge thanks and nice work, and I really appreciate all the work you (Charlie) and the astral folks have put in, it's been a real bright spot at work for a while.
simonw
|next
|previous
[-]
https://github.com/astral-sh/python-build-standalone
If you're looking to bundle Python into another application - a macOS desktop app for example - these are exactly what you need.
zie
|next
|previous
[-]
* Python Source: https://github.com/jart/cosmopolitan/tree/master/third_party...
* Python Binary: https://cosmo.zip/pub/cosmos/bin/python which is ~ 40MB.
Apparently you can zip your .py files in with the python binary and make it run, but I haven't had a chance to try and play with that yet.
rsyring
|next
|previous
[-]
1: https://github.com/indygreg/PyOxidizer/
From that readme, it seems PyOxy has a few related uses:
- It can produce a single file executable representing a Python app including the interpreter
- It can ship self-contained Python interpreters and related to be embedded or used as a library in a larger application
- PyOxidizer can serve as a bridge between Rust and Python - "PyOxidizer can be used to easily add a Python interpreter to any Rust project. But the opposite is also true: PyOxidizer can also be used to add Rust to Python."
d3Xt3r
|root
|parent
|next
[-]
rsyring
|root
|parent
[-]
- Project Status Update: https://github.com/indygreg/PyOxidizer/discussions/740
- https://gregoryszorc.com/blog/2024/03/17/my-shifting-open-so...