1 votes

Python 3 sur Android avec TerminalIDE

Je veux coder Python 3 sur mon appareil Android. Je suis donc passé par Le blog de Lanky Cyril post sur l'utilisation de l'IDE Terminal pour mettre tout ce dont j'avais besoin pour faire du code sur un terminal Android. Pour Python 2.X qui est installé sur le blog, cela fonctionne comme un charme.

J'ai donc installé Python 3 en suivant les mêmes instructions. Voici ce que j'obtiens lorsque j'essaie de lancer Python 3 :

terminal++:~$ ~/python3                                                                                                                                              
Fatal Python error: Py_Initialize: unable to load the file system codec
LookupError: no codec search functions registered: can't find encoding
Segmentation fault 

Je m'en suis assuré :

export PYTHONHOME=/data/data/com.googlecode.python3forandroid/files/python3
export PYTHONPATH=${PYTHONHOME}/lib/python3.2/lib-dynload

J'ai aussi vérifié pourquoi python 3 ne se charge pas sur StackOverflow.

Le problème pourrait donc venir de la compilation de Python. Quelqu'un a-t-il réussi à contourner ce problème ?

1voto

Afrowave Points 121

J'ai trouvé la solution en allant sur le site de Python-for-Android (Py4A) et j'ai trouvé le script qui permet à Python3 de fonctionner en tant que "Stand alone" sur Android.

Il y a trois façons de procéder :

  • J'ai créé le script "standalone.sh", je l'ai enregistré dans "HOME"( export HOME=/data/data/com.spartacusrex.spartacuside/files ), a changé son mode en exécutable, l'a appelé et python est apparu.

  • J'ai ouvert le ~/.bashrc et j'ai copié-collé le code :

 export EXTERNAL_STORAGE=/mnt/sdcard/com.googlecode.python3forandroid
 export PY34A=/data/data/com.googlecode.python3forandroid/files/python3
 export PY4A_EXTRAS=$EXTERNAL_STORAGE/extras
 PYTHONPATH=$EXTERNAL_STORAGE/extras/python3
 PYTHONPATH=${PYTHONPATH}:$PY34A/lib/python3.2/lib-dynload
 export PYTHONPATH
 export TEMP=$EXTERNAL_STORAGE/extras/python3/tmp
 export PYTHON_EGG_CACHE=$TEMP
 export PYTHONHOME=$PY34A
 export LD_LIBRARY_PATH=$PY34A/lib
 $PYTHONHOME/bin/python3 "$@"

Notez que cela signifie que chaque fois que vous lancerez l'IDE Terminal, vous chargerez automatiquement Python et vous vous retrouverez à l'invite Python.

  • Pour lancer Python de la manière normale, comme indiqué par Lanky Cyril, collez le code suivant dans le fichier .bashrc :
export EXTERNAL_STORAGE=/mnt/sdcard/com.googlecode.python3forandroid
export PY34A=/data/data/com.googlecode.python3forandroid/files/python3
export PY4A_EXTRAS=$EXTERNAL_STORAGE/extras
PYTHONPATH=$EXTERNAL_STORAGE/extras/python3
PYTHONPATH=${PYTHONPATH}:$PY34A/lib/python3.2/lib-dynload
export PYTHONPATH
export TEMP=$EXTERNAL_STORAGE/extras/python3/tmp
export PYTHON_EGG_CACHE=$TEMP
export PYTHONHOME=$PY34A
export LD_LIBRARY_PATH=$PY34A/lib

Vous remarquerez que la dernière ligne de la deuxième solution a été retirée et placée dans un fichier exécutable "~/python". Voici le code :

  #!/system/bin/sh   
  /data/data/com.googlecode.python3forandroid/files/python3/bin/python3 "$@"

J'ai utilisé la deuxième solution de sorte que lorsque je lance l'IDE Terminal, j'obtienne instantanément l'invite Python. J'ai installé la troisième solution de sorte que, si je quitte l'invite Python, j'ai un moyen de revenir dans la même session de terminal.

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X