Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork254
A modern Python application packaging and distribution tool
License
indygreg/PyOxidizer
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
PyOxidizer is a utility for producing binaries that embed Python.The over-arching goal ofPyOxidizer is to make complex packaging anddistribution problems simple so application maintainers can focus onbuilding applications instead of toiling with build systems and packagingtools.
PyOxidizer is capable of producing a single file executable - witha copy of Python and all its dependencies statically linked and allresources (like.pyc files) embedded in the executable. You cancopy a single executable file to another machine and run a Pythonapplication contained within. Itjust works.
PyOxidizer exposes its lower level functionality for embeddingself-contained Python interpreters as a tool and software library. So ifyou don't want to ship executables that only consist of a Pythonapplication, you can still usePyOxidizer to e.g. produce a librarycontaining Python suitable for linking in any application or usePyOxidizer's embedding library directly for embedding Python in alarger application.
TheOxidizer part of the name comes from Rust: executables producedbyPyOxidizer are compiled from Rust and Rust code is responsiblefor managing the embedded Python interpreter and all its operations.If you don't know Rust, that's OK: PyOxidizer tries to make the existenceof Rust nearly invisible to end-users.
While solving packaging and distribution problems is the primary goalofPyOxidizer, a side-effect of solving that problem with Rust isthatPyOxidizer can serve as a bridge between these two languages.PyOxidizer can be used to easily add a Python interpreter toanyRust project. But the opposite is also true:PyOxidizer can also beused to add Rust to Python. UsingPyOxidizer, you couldbootstrapa new Rust project which contains an embedded version of Python and yourapplication. Initially, your project is a few lines of Rust thatinstantiates a Python interpreter and runs Python code. Over time,functionality could be (re)written in Rust and your previouslyPython-only project could leverage Rust and its diverse ecosystem. SincePyOxidizer abstracts the Python interpreter away, this could all beinvisible to end-users: you could rewrite an application from Python toRust and people may not even know because they never see alibpython,.py files, etc.
🏠 The official home of thePyOxidizer project ishttps://github.com/indygreg/PyOxidizer.
📔 Documentation (generated from thedocs/ directory) is availableathttps://gregoryszorc.com/docs/pyoxidizer/main/.
💬 Thepyoxidizer-usersmailing list is a forum for users to discuss all things PyOxidizer.
💰 If you want to financially contribute to PyOxidizer, do soviaGitHub Sponsors oron Patreon.
About
A modern Python application packaging and distribution tool
Resources
License
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Sponsor this project
Uh oh!
There was an error while loading.Please reload this page.