3 ms·
Only tangential, but it's a very little know fact that python can import and even run code from a zip archive. There is actually a module for that in the stdlib
by BiteCode_dev 5y ago
Only tangential, but it's a very little know fact that python can import and even run code from a zip archive. There is actually a module for that in the stdlib: zipapp.
This means that you can zip your entire project, including deps, into a pyz file, and ship that to your serveur as one big archive and run it like you would a .py file. It makes deployments very easy.
It also means you don't have to worry about using dependancies in quick scripts: use as many as you want and bundle them!
A tool exists to create the bundle easily and make it extract itself on first run for better perfs:
https://shiv.readthedocs.io https://shiv.readthedocs.io
Is that instead of the zipapp module.
- jjice 5y agoDoes zipapp automatically bundle dependencies, or do you need to specify that somehow? Also, how does this handle native extensions? Edit: Answered by first question: https://docs.python.org/3/library/zipapp.html#creating-standalone-applications-with-zipapp https://docs.python.org/3/library/zipapp.html#creating-stand...
- hprotagonist 5y agofor bundled deps, see shiv or pex. https://shiv.readthedocs.io/en/latest/ https://shiv.readthedocs.io/en/latest/ https://pex.readthedocs.io/en/v2.1.49/ https://pex.readthedocs.io/en/v2.1.49/ You still need the host to have a base python interpreter.
- BiteCode_dev 5y agoCarefull though, pex doesn't work on windows
- BiteCode_dev 5y agopip install --target to download your deps then use shiv