skillfed

buildozer

Turns Python applications into binary packages ready for installation on a number of platforms.

buildozer v1.6.0 164.9K downloads/30d#10,536 on PyPI2,019
Permissive license MIT Active released

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 buildozer

uv

uv add buildozer

poetry

poetry add buildozer

Installing 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

Development Status :: 5 - Production/StableIntended Audience :: DevelopersProgramming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14Programming Language :: Python :: 3.8Programming Language :: Python :: 3.9Topic :: Software Development :: Build Tools

Tags

python to mobile app builderandroid ios app packagingpython cross-platform build toolkivy app compilerpython binary package creationmobile app deployment automationpython to apk ipa builder
mobile-app-packagingcross-platform-buildkivy-ecosystem

More Build Tools packages