Python Application Packaging Tools – An overview
Python offers numerous methods to transform scripts into standalone applications. Packaging tools are designed to bundle your code, libraries, and often a Python interpreter, enabling users to run your app without the need to manually install Python or its dependencies.
Each tool employs a unique approach – some generate a single executable, while others create a directory or installer. They vary in terms of OS support, performance, output size, and use cases.
In this blog series, I plan to explore each tool, discussing their advantages and disadvantages, usage, and internal workings.
DISCLAIMER: I am not an expert on these tools or Python. I have been a developer for the past 7 years, primarily working with Python. This article reflects my personal opinions and insights gained from some testing with these tools.
Tools i plan to explore
PyInstaller (https://pyinstaller.org/en/stable/)
cx_freeze (https://cx-freeze.readthedocs.io/en/stable/)
briefcase (https://beeware.org/briefcase/)
PyOxidizer (https://github.com/indygreg/PyOxidizer)
Nuitka (https://nuitka.net/)
PyApp (https://github.com/ofek/pyapp)
py2exe (https://www.py2exe.org/)
Packaged (https://packaged.live/)
PyCrucible (https://github.com/razorblade23/PyCrucible)
About the author
I’m a passionate and experienced Software Engineer from Zadar, Croatia, with a strong appreciation for open-source. I specialize in backend systems, web apps, and cloud-native solutions, always eager to explore new tools and technologies.
Comments
Join the discussionNo comments yet. Be the first to comment.
PyInstaller and its alternatives
Python has many ways to turn scripts into standalone applications. My goal is to explore all the tools, their use cases, internal and external workings and everything in between.