Skip to main content

Android APK packager for Python scripts and apps

Project description

[![Build Status](https://travis-ci.org/kivy/python-for-android.svg?branch=develop)](https://travis-ci.org/kivy/python-for-android) [![Coverage Status](https://coveralls.io/repos/github/kivy/python-for-android/badge.svg?branch=develop&kill_cache=1)](https://coveralls.io/github/kivy/python-for-android?branch=develop) [![Backers on Open Collective](https://opencollective.com/kivy/backers/badge.svg)](#backers) [![Sponsors on Open Collective](https://opencollective.com/kivy/sponsors/badge.svg)](#sponsors)

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:

## Documentation

Follow the [quickstart instructions](<https://python-for-android.readthedocs.org/en/latest/quickstart/>) 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+https://github.com/kivy/python-for-android.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](https://python-for-android.readthedocs.io/en/latest/quickstart/#usage).

## Support

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

We also have [#support Discord channel](https://chat.kivy.org/).

## Contributing

We love pull requests and discussing novel ideas. Check out the Kivy project [contribution guide](http://kivy.org/docs/contribute.html) and feel free to improve python-for-android.

See [our documentation](https://python-for-android.readthedocs.io/en/latest/contribute/) for more information about the python-for-android development and release model, but don’t worry about the details. You just need to make a pull request, we’ll take care of the rest.

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](https://chat.kivy.org/).

## License

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

## History

In 2015 these tools were rewritten to provide a new, easier to use and extend interface. If you’d like to browse the old toolchain, its status is recorded for posterity at at https://github.com/kivy/python-for-android/tree/old_toolchain.

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. Also should be mentioned that this unified python recipes require to target to a minimum api level of 21, Android 5.0 - Lollipop, so in case the you need to build targeting an api level below 21, you must use an old version of python-for-android (<=0.7.1). 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.

## Contributors

This project exists thanks to all the people who contribute. [[Contribute](CONTRIBUTING.md)]. <a href=”https://github.com/kivy/python-for-android/graphs/contributors”><img src=”https://opencollective.com/kivy/contributors.svg?width=890&button=false” /></a>

## Backers

Thank you to all our backers! 🙏 [[Become a backer](https://opencollective.com/kivy#backer)]

<a href=”https://opencollective.com/kivy#backers” target=”_blank”><img src=”https://opencollective.com/kivy/backers.svg?width=890”></a>

## Sponsors

Support this project by becoming a sponsor. Your logo will show up here with a link to your website. [[Become a sponsor](https://opencollective.com/kivy#sponsor)]

<a href=”https://opencollective.com/kivy/sponsor/0/website” target=”_blank”><img src=”https://opencollective.com/kivy/sponsor/0/avatar.svg”></a> <a href=”https://opencollective.com/kivy/sponsor/1/website” target=”_blank”><img src=”https://opencollective.com/kivy/sponsor/1/avatar.svg”></a> <a href=”https://opencollective.com/kivy/sponsor/2/website” target=”_blank”><img src=”https://opencollective.com/kivy/sponsor/2/avatar.svg”></a> <a href=”https://opencollective.com/kivy/sponsor/3/website” target=”_blank”><img src=”https://opencollective.com/kivy/sponsor/3/avatar.svg”></a> <a href=”https://opencollective.com/kivy/sponsor/4/website” target=”_blank”><img src=”https://opencollective.com/kivy/sponsor/4/avatar.svg”></a> <a href=”https://opencollective.com/kivy/sponsor/5/website” target=”_blank”><img src=”https://opencollective.com/kivy/sponsor/5/avatar.svg”></a> <a href=”https://opencollective.com/kivy/sponsor/6/website” target=”_blank”><img src=”https://opencollective.com/kivy/sponsor/6/avatar.svg”></a> <a href=”https://opencollective.com/kivy/sponsor/7/website” target=”_blank”><img src=”https://opencollective.com/kivy/sponsor/7/avatar.svg”></a> <a href=”https://opencollective.com/kivy/sponsor/8/website” target=”_blank”><img src=”https://opencollective.com/kivy/sponsor/8/avatar.svg”></a> <a href=”https://opencollective.com/kivy/sponsor/9/website” target=”_blank”><img src=”https://opencollective.com/kivy/sponsor/9/avatar.svg”></a>

Project details


Download files

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

Source Distribution

python-for-android-2019.6.6.tar.gz (1.0 MB view details)

Uploaded Source

Built Distribution

python_for_android-2019.6.6-py3-none-any.whl (577.1 kB view details)

Uploaded Python 3

File details

Details for the file python-for-android-2019.6.6.tar.gz.

File metadata

  • Download URL: python-for-android-2019.6.6.tar.gz
  • Upload date:
  • Size: 1.0 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.4.2 requests/2.18.4 setuptools/41.0.1 requests-toolbelt/0.8.0 tqdm/4.15.0 CPython/3.7.3

File hashes

Hashes for python-for-android-2019.6.6.tar.gz
Algorithm Hash digest
SHA256 422166be3c3593cbee344b81c7b0b8b81729b82e85e602b3183d7e78cfee647e
MD5 c72986e3c1f87bd8d0234ca8c791f656
BLAKE2b-256 8a5ae4eaafa789bf33a6c14a443c8d4669f92694a9ef1729d5db81c9b890e5e4

See more details on using hashes here.

File details

Details for the file python_for_android-2019.6.6-py3-none-any.whl.

File metadata

  • Download URL: python_for_android-2019.6.6-py3-none-any.whl
  • Upload date:
  • Size: 577.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.4.2 requests/2.18.4 setuptools/41.0.1 requests-toolbelt/0.8.0 tqdm/4.15.0 CPython/3.7.3

File hashes

Hashes for python_for_android-2019.6.6-py3-none-any.whl
Algorithm Hash digest
SHA256 6ee52ef7c21ee8b5124606f2630c12a9544a5e67b4854f2ea2bf07e5196846c1
MD5 5b44cf2ecd70bda6500126877cbe22ec
BLAKE2b-256 627144eaa084f5090e55ffb597c08c727eefbc1efcd49550f0fd8cdd4af86f3d

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page