Skip to main content
Join the official 2020 Python Developers SurveyStart the survey!

Android APK packager for Python scripts and apps

Project description


Build Status

python-for-android is a packager for Python apps on Android. You can create your own Python distribution including the modules and dependencies you want, and bundle it in an APK along with your own code.

Features include:

  • Support for building with both Python 2 and Python 3.
  • Different app backends including Kivy, PySDL2, and a WebView with Python webserver.
  • Automatic support for most pure Python modules, and built in support for many others, including popular dependencies such as numpy and sqlalchemy.
  • Multiple architecture targets, for APKs optimised on any given device.

For documentation and support, see:

In 2015 these tools were rewritten to provide a new, easier to use and extend interface. If you are looking for the old toolchain with and, it is still available at, and issues and PRs relating to this branch are still accepted. However, the new toolchain contains all the same functionality via the built in pygame bootstrap.

In the last quarter of 2018 the python recipes has been changed, the new recipe for python3 (3.7.1) has a new build system which has been applied to the ancient python recipe, allowing us to bump the python2 version number to 2.7.15. This change, unifies the build process for both python recipes, and probably solve some issues detected over the years, but unfortunately, this change breaks the pygame bootstrap (in a near future we will fix it or remove it). Also should be mentioned that the old python recipe is still usable, and has been renamed to python2legacy. This python2legacy recipe allow us to build with a minimum api lower than 21, which is not the case for the new python recipes which are limited to a minimum api of 21. All this work has been done using android ndk version r17c, and your build should success with that version…but be aware that the project is in constant development so…the ndk version will change at some time.

Those mentioned changes has been done this way to make easier the transition between python3 and python2. We will slowly phase out python2 support towards 2020…so…if you are using python2 in your projects you should consider to migrate it into python3.


Follow the quickstart instructions to install and begin creating APKs.

Quick instructions to start would be:

pip install python-for-android

or to test the master branch:

pip install git+

The executable is called python-for-android or p4a (both are equivalent). To test that the installation worked, try:

python-for-android recipes

This should return a list of recipes available to be built.

To build any distributions, you need to set up the Android SDK and NDK as described in the documentation linked above.

If you did this, to build an APK with SDL2 you can try e.g.:

p4a apk --requirements=kivy --private /home/asandy/devel/planewave_frozen/ --package=net.inclem.planewavessdl2 --name="planewavessdl2" --version=0.5 --bootstrap=sdl2

For full instructions and parameter options, see the documentation.


If you need assistance, you can ask for help on our mailing list:

We also have #support Discord channel.


We love pull requests and discussing novel ideas. Check out our contribution guide and feel free to improve python-for-android.

The following mailing list and IRC channel are used exclusively for discussions about developing the Kivy framework and its sister projects:

We also have #dev Discord channel.


python-for-android is released under the terms of the MIT License. Please refer to the LICENSE file.

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for python-for-android, version 0.7.0
Filename, size File type Python version Upload date Hashes
Filename, size python-for-android-0.7.0.tar.gz (1.6 MB) File type Source Python version None Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page