Accueil > Le numérique > Programmation > Python > Python pour android : Kivy (installations et exemples)

Python pour android : Kivy (installations et exemples)

 Introduction

Le site : http://kivy.org/#home

Kivy permet de développer en Python des applications, des jeux, sur toutes plateformes (Win, Linux, Mac, iOS, Android...).

Si vous voulez créer votre application pour Android (création d’un fichier apk), il sera préférable d’utiliser Linux et d’installer Buildozer. (Voir plus loin dans cette page.)

De même, pour iOS, il faudra utiliser (pour packager l’application) un Mac etc...

Mais quoi qu’il arrive, vous applications pourront être développées sur tous les OS.

(Attention aux spécificités des chemins vers les fichiers et autres...)

Il faut penser à adapter ses applications pour tablettes et autres smartphones.

Voici un exemple et une façon d’utiliser Kivy sur Win7 (Peut-être plus à jour...) :

 Installation sous W7, W8, W10

Pour télécharger Kivy. Vous trouverez la doc ici :
http://kivy.org/#download

Il existe des versions portables de Kivy (Python + Kivy) dans un dossier à extraire. Aujourd’hui (mai 2016) il faut installer Python avant d’installer Kivy. Voici les étapes d’après la doc en ligne :

Installer Python :

Si vous avez déjà Pyzo et Miniconda, vous pouvez passer cette étape.
Sinon, vous pouvez installer Pyzo et Miniconda ou une version nue de Python 3.6 : https://www.python.org/downloads/windows/

Installation de Kivy :

Dans un terminal si vous avez la version nue de Python (Tapez cmd dans la recherche d’applications Windows) ou dans le shell de Pyzo (en enlevant à chaque fois "python -m" des lignes de commandes suivantes ) :

  • Allez dans le dossier où se trouve votre installation Python (C :\Python3.6) :
  1. cd C:\Python3.6
  • Vous pouvez vérifier votre installation Python :
  1. python --version
  • Installez pip et Wheel :
  1. python -m pip install --upgrade pip wheel setuptools
  • Installez des dépendences :
  1. python -m pip install docutils pygments pypiwin32 kivy.deps.sdl2 kivy.deps.glew

(Gstreamer est assez lourd donc ne l’installez que si vous en avec besoin (cf doc kivy))

Pour python 3.5 seulement, vous aurez besoin d’une librairie complémentaire :

  1. python -m pip install kivy.deps.angle
  • Installez Kivy :
  1. python -m pip install kivy

Vous devez maintenant avoir Kivy. Pour tester :

  • Ouvrez un éditeur (Notepad, Pyzo...)
  • Copier/coller le code suivant :
  1. import kivy
  2. kivy.require('1.0.6') # replace with your current kivy version !
  3.  
  4. from kivy.app import App
  5. from kivy.uix.label import Label
  6.  
  7. class MyApp(App):
  8.  
  9. def build(self):
  10. return Label(text='Hello world')
  11.  
  12. if __name__ == '__main__':
  13. MyApp().run()

Télécharger

  • Enregistrez sous main.py
  • Clique droit sur le fichier, "Ouvrir avec", "Python Launcher" :
JPEG - 75.7 ko
Screenshot Windows Kivy
  • Votre première application devrait se lancer :
PNG - 6.6 ko
Hello World Kivy

Si vous souhaitez packager vos applications pour Windows et WindowsPhones, je vous laisse lire la doc :

http://kivy.org/docs/guide/packaging-windows.html

 Installation sous Linux Ubuntu14.04 et Mint17

Kivy existe dans les dépots. Il s’agit de la version 1.7. (Actuellement, la version 1.9 est sortie.)

Kivy pour python 2.7 : (Peut-être aussi 3.4 mais je n’ai pas testé...)

Dans un terminal tapez :

  1. sudo apt-get install python-kivy

C’est la version que nous utiliserons au collège.

Si vous voulez une version plus récente :

Dans un terminal :

  1. sudo add-apt-repository ppa:kivy-team/kivy
  2. sudo apt-get update
  3. sudo apt-get install python-kivy

Télécharger

Pour exécuter un programme, allez dans le dossier où se trouve votre programme nom_du_fichier.py puis, tapez :

  1. python {nom_du_fichier.py}

 Kivy sur Android

Deux méthodes :

Vous pourrez alors transférer vos fichiers ".py" sur votre appareil et les lancer. Cette méthode peut servir à tester rapidement des programmes simples sur Android. L’ouverture de certains droits spécifiques sera impossible.

  • Créer une application pour Android (apk) : Installer buildozer ou bien télécharger une iso Linux toute prête puis l’installer avec une VirtualBox :

La doc sur l’image Linux pour Kivy : http://kivy.org/docs/guide/packaging-android-vm.html#kivy-android-vm

 Installation de buildozer :

Attention ! Les dernières versions du SDK Android ne sont plus supportées par Linux 32 bits.
Lors de la première création d’un apk, buildozer va télécharger la dernière version du SDK. Vous aurez un message d’erreur. Il faudra alors downgrader votre SDK. Une méthode ici : http://stackoverflow.com/questions/9555337/how-to-downgrade-my-sdk-version. un lien vers le SDK dans cette discussion : http://stackoverflow.com/questions/34216342/android-studio-adb-syntax-error-unexpected.

Pour l’installation :

Vous avez de bonnes explications ici : http://wiki.labomedia.org/index.php

En gros :

Dans un terminal :

  1. sudo apt-get install python-dev build-essential ccache git openjdk-7-jdk zlib1g-dev python-setuptools libncurses5 libstdc++6 zlib1g unzip
  1. sudo easy_install pip
  2. sudo pip install --upgrade cython==0.21
  3. sudo pip install markupsafe
  4. sudo pip install --upgrade buildozer

Télécharger

Il se peut qu’il vous manque des paquets. Vérifiez :

  1. sudo apt-get install javacc
  2. sudo apt-get install openjdk-7-jdk

Télécharger

Utilisation :

Il faut que vos dossiers contenant les programmes main.py soient dans votre répertoire personnel.

Ouvrez un terminal et allez dans votre dossier où se trouve votre fichier main.py.

Tapez :

  1. buildozer init

Ouvrez avec un éditeur le fichier buildozer.spec :

  1. gedit buildozer.spec

Modifiez le nom, le titre de votre application.

Modifiez la version (Ajoutez un # devant les deux lignes de version en méthode 1 et enlever le # de la version en méthode 2... C’est plus simple ainsi...).

Voici un exemple :
Avant :

# (str) Application versioning (method 1)
version.regex = __version__ = [’"](.*)[’"]
version.filename = %(source.dir)s/main.py
# (str) Application versioning (method 2)
# version = 1.2.0

Après :

# (str) Application versioning (method 1)
#version.regex = __version__ = [’"](.*)[’"]
#version.filename = %(source.dir)s/main.py
# (str) Application versioning (method 2)
version = 1.2.0

Plus bas dans ce fichier, vous avez un "log_level = 1". Passez-le à 2 si vous voulez plus de détails sur les éventuelles erreurs.

Enregistrez ensuite votre fichier.

Pour compiler :

  1. buildozer android debug

Si tout se passe bien, vous aurez un dossier bin dans le dossier de votre application contenant un fichier "....apk"

Transférez ce fichier sur votre tablette puis installez-le. Il faut autoriser les sources inconnues.

Il y a des apk dans cet article un peu plus loin (Utilisez les boutons en haut de la page pour slider..)

Une erreur courante :

https://github.com/kivy/buildozer/issues/146#issuecomment-57061269

(Vérifiez qu’il s’agit bien de la même erreur en poussant le Log_Level à 2 dans le fichier buildozer.spec)

Il arrive aussi qu’il faille désinstaller et réinstaller buildozer. Voir dans cette article :

http://wiki.labomedia.org/index.php

Vous avez des exemples de codes pour Kivy (sans kv) ici :

http://tableauxmaths.fr/spip/spip.php?article135&artpage=2-4#outil_sommaire_4

Documents joints

jeudi 28 août 2014 par wlaidet


| Plan du site | Mentions légales | Suivre la vie du site RSS 2.0 | Haut de page | SPIP | ScolaSPIP