Congrats on this new tool -- I'll be checking it out. With a quick glance at the docs, I see this:
""" PyOxidizer loads everything from memory and there is no explicit I/O being performed. When you import a Python module, the bytecode for that module is being loaded from a memory address in the executable using zero-copy. This makes PyOxidizer executables faster to start and import - faster than a python executable itself! """
This made me think of a recent thread either here or on python-ideas about optimizing the cPython start up time. In particular the idea of bundling the core parts of the stdlib pre-loaded somehow. Multiple options were discussed, but as far as I know no one actually prototyped any of them.
But it looks like you've done that.
My question is this: Can you use PyOxidizer partway -- that is, bundle up some modules, while keeping the regular module loading system for everything else. If so, then one could build an executable with all the modules that always get loaded. It's quite a list judging from:
$ python -c "import sys; print(len(sys.modules))"
How much faster is the start up time when you make an exe that does, well, nothing.
Also -- I have some vague memory of there being a mailing list for the various "bundlers": py2exe, py2app, PyInstaller, etc... it would be good to engage that community, it really is a bit different than the usual "packaging" community, which is primarily focused on python packages themselves rather than applications.
On Mon, Jun 24, 2019 at 11:06 AM Gregory Szorc email@example.com wrote:
Hey Python developers,
I just published the initial release of PyOxidizer - a utility for producing self-contained, potentially single file executable Python applications. You can read more about it at https://gregoryszorc.com/blog/2019/06/24/building-standalone-python-applicat...