Distributing Python programs through PyInstaller
summary
PyInstaller 1.5 packages a Python interpreter plus all dependencies into a native binary or bundle for Windows, Linux and macOS, producing either a one-directory layout or a one-file mode single executable (example: a 600 KB hello-world exe or a 2.1 MB single-file). The bootloader appends a compressed pyz archive of .pyc files (never extracted to disk) and, for bundled C extensions and DLLs, extracts shared libraries to a temporary directory at startup. Built‑in hooks handle libraries like matplotlib and PyQt4, supports zlib and UPX compression, and allows code signing; Python 3 support is not yet available.
AI-written summary · about
chapters (22)
- 0:00Intro
- 0:17Giovanni Bajo
- 0:49Goal
- 1:31Means
- 2:30Solution
- 5:33Crash tutorial
- 12:00Where is the program?
- 14:17Import hooks
- 18:10Where are the libraries?
- 20:17Explore the executable
- 21:43Feature reel
- 23:33Multiplatform: Windows
- 25:59Multiplatform: Linux
- 26:50Multiplatform: Mac OS X
- 27:39Flexibility
- 29:19Analysis
- 30:27Dependencies: Python level
- 31:49Dependencies: OS level
- 36:31SPEC hand editing
- 37:59Reverse engineering
- 40:52Pyinstaller future
- 48:01Questions?
related talks
28mSnakes in a case: Packaging Python apps for distribution
31mPython on Windows
02h 36mPython Packaging Demystified
24mInside the Cheeseshop:How Python Packaging Works
33mThe Evolution of Python Packaging
36mPython Packaging from Init to Deploy
42mWhy is Windows so broken? and what to do about it
24mA tale of Python C extensions and cross-platform wheels
