web-dev-qa-db-fra.com

Utiliser python et matplotlib sur Android

Existe-t-il un moyen de configurer python 2.7.x + matplotlib sur une tablette Android pour pouvoir exécuter du code python standard simple? J'aimerais pouvoir exécuter les mêmes scripts que sur mon bureau Linux. Ceci est juste pour mon propre usage et je n'ai pas besoin de distribuer le code à quelqu'un d'autre.

À titre d'exemple concret, est-il possible d'exécuter ce script?

import numpy as np
import matplotlib.pyplot as plt

x = np.arange(0, 5, 0.1);
y = np.sin(x)
plt.plot(x, y)
27
marshall

Est-ce facile, non.

Cela peut-il être fait? Oui. Je crois qu'un développeur expérimenté Python/Android pourrait le faire en 2 à 8 heures d'effort. C'est une demande rare et complexe.

Pourquoi je pense que cela peut être fait? Cet exemple: http://matplotlib.org/examples/pylab_examples/webapp_demo.html

En utilisant une bibliothèque différente, et non abstraite pour les données sans matériel réel, cet exemple m’a montré que SL4A pouvait créer des graphiques sur le Web: http://www.smartphonedaq.com/Android-python-ecg.page

Maintenant, si vous parliez d’images graphiques GUI natives dans Android, alors je me suis beaucoup trop concentré sur les méthodes de publication Web avec SL4A;)

4
RoundSparrow hilltx

Pydroid est idéal pour Matplotlib sur Android, supporte Numpy et de nombreuses autres bibliothèques:

Pydroid pour Python 2.7

Pydroid 3 pour Python 3.6

1
Sandor Rado

Est-ce facile? Oui! Pydroid 3 Vous pouvez installer presque toutes les bibliothèques dont vous avez entendu parler. 

1
Miladiouss

Il existe une application appelée Gnuroot qui vous permet de lancer une sorte de chroot (proot), où vous pouvez installer une distribution linux telle que debian, archlinux ...
Pour l’interface graphique, il est possible d’exécuter un vncserver pour un serveur X et d’utiliser une application client Android vnc pour afficher l’écran. 

J'utilise la version non-gui de gnuroot et cela fonctionne bien. J'ai maintenant un Debian Wheezy en ligne de commande sur le bras Android Lollipop. Armhf (support flottant matériel que le processeur de mon nexus7 peut faire) prend en charge au lieu de armel (logiciel flottant).

1
yoghurt

Oui, cela peut être fait, même sans racine. Vous avez besoin de l'application termux, il s'agit en fait d'un émulateur de terminal avec un environnement Linux complet et via apt install python, vous pouvez par exemple installer python

La page Web principale est ici , et elle est bien sûr disponible sur le marché standard. (Le wiki termux est un endroit utile.)

1
Alf

Vous pouvez configurer un serveur bon marché (Raspberry Pi?) Et créer une connexion ssh avec ce dernier pour accéder à toutes les fonctionnalités de python via une application vnc viewer Android ou le shell.

0
nagordon

Voici le code, cela fonctionne après avoir installé GNURoot Debian comme vous l’avez dit. Juste un détail: mon graphique est exporté directement dans un fichier .png:

from pylab import *
import matplotlib.pyplot as plt
plt.switch_backend('agg')
x = linspace(-5, 5, 100)
y = sin(x)
plot(x, y)
out_png = 'out_file.png'
plt.savefig(out_png, dpi=150)
0
Steph

J'ai lu quelque part que scipy et matplotlib ne peuvent pas être compilés pour Android, quelqu'un l'a fait pour numpy

https://code.google.com/p/Android-scripting/issues/detail?id=260

0
darmat

Vous pouvez essayer MathSys . C'est un wrapper autour de Python, et il contient matplotlib.

Malheureusement, MathSys est plutôt compliqué et c'est une version alpha. Apparemment, personne ne travaille sur une version bêta. Vous aurez envie d'écrire un code compliqué dans un fichier externe. import fonctionne bien dans MathSys.

0
Lev

En cherchant numpy Android sur Google, j'ai trouvé une très jolie bibliothèque . Je suppose que cela pourrait être utile. 

0
sri