buildozer
Turns Python applications into binary packages ready for installation on a number of platforms.
What it is and what it does
Buildozer is a command-line build automation tool that packages Python applications into installable binaries for multiple platforms—Android, iOS, Windows, macOS, and Linux—from a single buildozer.spec configuration file. It abstracts away the complexity of platform-specific build toolchains by managing dependencies and orchestrating compilation through its sibling projects python-for-android and Kivy for iOS. The tool is particularly designed to simplify Kivy framework app development but can work with any Python GUI framework.
Developers provide a buildozer.spec file describing their app's title, icons, requirements, and target platforms, then run buildozer commands like `buildozer android debug` or `buildozer ios release` to generate ready-to-install packages. For Android, buildozer automates SDK and NDK setup. The tool is actively maintained by the Kivy Team and supports Python 3.8 through 3.14, with a Docker image and GitHub Actions integration available for CI/CD workflows.
Use it for:
- Package a Kivy-based mobile app for Android and iOS distribution from a single Python codebase.
- Automate cross-platform binary builds in CI/CD pipelines using the GitHub Actions integration.
- Build and deploy Python desktop applications to Windows, macOS, and Linux without learning platform-specific build systems.
- Manage Android SDK/NDK dependencies and compilation automatically instead of configuring them manually.
- Create debug and release builds with different signing and optimization settings via buildozer.spec configuration.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Buildozer turns Python applications into binary packages for Android, iOS, Windows, macOS, and Linux from a single configuration file.
Yes, if you are building Python applications for mobile (especially Android/iOS) or need cross-platform desktop packaging. The low install friction and active maintenance make it accessible, though you should expect to follow detailed platform-specific setup instructions and have external build tools (Android SDK, Xcode, etc.) available. Not necessary for web-only or pure-server applications.
Install
buildozer on PyPI
pip
pip install buildozeruv
uv add buildozerpoetry
poetry add buildozerInstalling buildozer
Before you install
Low install friction with a pure-Python wheel distribution. Depends on pexpect, packaging, and cython. Note that the package itself has low friction, but the description emphasizes that full setup requires platform-specific dependencies outside Python (Android SDK/NDK for Android builds, Xcode for iOS, etc.), so initial configuration can be involved despite the pip install being straightforward.
License in practice
MIT licensed under permissive terms, allowing commercial and private use with minimal restrictions.
Quickstart
pip install buildozer
buildozer init
# Edit buildozer.spec, then:
buildozer android debug
Building for Android requires Android SDK and NDK to be downloaded and configured; iOS builds require Xcode. The description notes these are not Python dependencies but external platform tools that buildozer will help manage.
Verify before relying
- Whether the package successfully handles all edge cases across the five target platforms (Android, iOS, Windows, macOS, Linux) in production use.
- Current state of community support and response time for build-related issues, given the complexity of cross-platform compilation.
- Compatibility with the latest versions of Kivy framework and whether non-Kivy GUI frameworks are equally well-supported.
Package facts
| License | MIT (permissive) |
| Python support | supports the current Python release (>=3.8) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 3 — pexpect, packaging, cython |
| Maintenance | actively maintained — 94 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 164,886/month — #10,536 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: buildozer-1.6.0-py3-none-any.whl
Tags
More Build Tools packages
Provides reusable utilities for Python…
permissive · top 100 on PyPI
tqdmWraps any iterable to display a real-time…
copyleft · top 100 on PyPI
pippip is the standard installer for Python…
permissive · top 100 on PyPI
hatchlingHatchling is a standards-compliant Python build…
permissive · top 100 on PyPI
grpcio-toolsGenerates Python gRPC service stubs and message…
permissive · top 1,000 on PyPI
pre-commitpre-commit is a framework for installing and…
permissive · top 1,000 on PyPI
KivyKivy is a Python framework for building…
permissive · top 15,000 on PyPI
plyerPlyer provides a platform-independent Python…
permissive · top 15,000 on PyPI
flet-desktopFlet Desktop provides a Python-only framework…
permissive · top 15,000 on PyPI
fletFlet is a Python framework for building…
permissive · top 15,000 on PyPI
manygoConverts Golang platform identifiers (GOOS and…
permissive · top 15,000 on PyPI
codemagic-cli-toolsProvides command-line and Python API tools for…
copyleft · top 5,000 on PyPI
flet-webFlet-web is the web client component of Flet,…
permissive · top 15,000 on PyPI
robotframework-appiumlibraryAppiumLibrary is a Robot Framework library that…
permissive · top 15,000 on PyPI
scikit-buildscikit-build bridges setuptools and CMake to…
permissive · top 5,000 on PyPI
uiautomatorPython wrapper for Android's uiautomator…
permissive · top 15,000 on PyPI