Czy istnieje sposób na uruchamianie Pythona na Androidzie?

Odpowiedzi na to pytanie są wysiłkiem Społeczności. Edytuj istniejące odpowiedzi, aby poprawić ten post. Obecnie nie przyjmuje nowych odpowiedzi ani interakcji.

Pracujemy nad wersją S60 i tą platformą ma ładne Python API..

Jednak nie ma nic oficjalnego o Pythonie na Androida, ale ponieważJython istnieje, czy istnieje sposób, aby wąż i robot współpracowali ze sobą??

Author: Ümañg ßürmån, 2008-09-19

23 answers

Jednym ze sposobów jest użycie Kivy :

Otwarta Biblioteka Pythona do szybkiego rozwoju aplikacji które wykorzystują innowacyjne interfejsy użytkownika, takie jak aplikacje multi-touch.

Kivy działa na systemach Linux, Windows, OS X, Android i iOS. Możesz uruchomić ten sam kod [python] na wszystkich obsługiwanych platformach.

Kivy Showcase app

 1110
Author: JohnMudd,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-08-31 22:09:40

Istnieje również nowy projekt Android Scripting Environment (ASE/SL4A). Wygląda niesamowicie i ma pewną integrację z natywnymi komponentami Androida.

Uwaga: już nie pod "aktywnym rozwojem" , ale niektóre widelce mogą być.

 356
Author: Heat Miser,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-02-19 04:49:05

Tak! : Android Scripting Environment

Przykład via Matt Cutts via SL4A -- " oto skaner kodów kreskowych napisany w sześciu liniach kodu Pythona:

import android
droid = android.Android()
code = droid.scanBarcode()
isbn = int(code['result']['SCAN_RESULT'])
url = "http://books.google.com?q=%d" % isbn
droid.startActivity('android.intent.action.VIEW', url)
 224
Author: unmounted,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-01-15 02:29:49

Pygame dla Androida

Pygame jest silnikiem gry 2D dla Pythona (na pulpicie), który jest popularny wśród nowych programistów. [[5]}podzbiór Pygame dla Androida opisuje się jako...

...port podzbioru funkcjonalności Pygame na platformę Android. Celem projektu jest umożliwienie tworzenia gier specyficznych dla Androida i ułatwienie przenoszenia gier z platform PC-podobnych do Androida.

Przykłady obejmują pełną grę zapakowany jako APK, co jest dość interesujące.

 92
Author: muriloq,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-11-12 23:54:37

Jako miłośnik Pythona i programista Androida, z przykrością stwierdzam, że nie jest to dobry sposób. Są dwa problemy:

Jeden problem polega na tym, że w narzędziach programistycznych Androida jest o wiele więcej niż tylko język programowania. Wiele grafik na Androida zawiera pliki XML do konfiguracji wyświetlacza, podobnie jak HTML. Wbudowane obiekty java są zintegrowane z tym układem XML, a przejście z logiki na bitmapę jest o wiele łatwiejsze niż pisanie kodu.

Inne problem polega na tym, że G1 (i prawdopodobnie inne urządzenia z Androidem w najbliższej przyszłości) nie są tak szybkie. Procesory 200 MHz i pamięć RAM są bardzo ograniczone. Nawet w Javie, trzeba zrobić przyzwoitą ilość przepisywania-aby-uniknąć-więcej-tworzenia obiektów, jeśli chcesz, aby Twoja aplikacja idealnie gładka. Python będzie przez jakiś czas zbyt wolny na urządzeniach mobilnych.

 85
Author: lacker,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-02-07 18:44:58

Warstwa skryptów dla Androida

SL4A robi co chcesz. Możesz łatwo zainstalować go bezpośrednio na urządzeniu z ich strony i nie potrzebujesz roota.

Obsługuje wiele języków. Pyton jest najbardziej dojrzały. Domyślnie używa Pythona 2.6, ale istnieje Port 3.2, którego możesz użyć zamiast niego. Użyłem tego portu do wszelkiego rodzaju rzeczy na Galaxy S2 i działało dobrze.

API

SL4A udostępnia port swojej biblioteki android dla każdego obsługiwany język. Biblioteka udostępnia interfejs do bazowego interfejsu API systemu Android za pośrednictwem jednego obiektu Android.

from android import Android

droid = Android()
droid.ttsSpeak('hello world') # example using the text to speech facade

Każdy język ma prawie to samo API. Można nawet użyć JavaScript API wewnątrz webviews.

let droid = new Android();
droid.ttsSpeak("hello from js");

Interfejsy Użytkownika

Dla interfejsów użytkownika, masz trzy opcje:

  • możesz łatwo korzystać z ogólnych, natywnych dialogów i menu poprzez API. Jest to dobre dla dialogów potwierdzenia i innych podstawowych użytkowników wejścia.
  • można również otworzyć webview z poziomu skryptu Pythona, a następnie użyć HTML5 dla interfejsu użytkownika. Gdy używasz webviews z Pythona, możesz przekazać wiadomości tam i z powrotem, między webview a procesem Pythona, który / align = "left" / Interfejs użytkownika nie będzie natywny, ale nadal jest to dobra opcja mam.
  • istnieje jakieś wsparcie dla natywnych interfejsów użytkownika Androida, ale nie jestem jasne, jak dobrze to działa; po prostu nigdy go nie używałem.

Można mieszać opcje, dzięki czemu możesz mieć Widok sieci Web dla głównego interfejsu i nadal korzystać z natywnych dialogów.

QPython

Istnieje projekt strony trzeciej o nazwie QPython . Opiera się na SL4A i wrzuca kilka innych przydatnych rzeczy.

QPython zapewnia ładniejszy interfejs użytkownika do zarządzania instalacją i zawiera mały edytor kodu Z Ekranem dotykowym, powłokę Pythona i powłokę PIP do zarządzania pakietami. Mają również Port Python 3. Obie wersje są dostępne w Sklepie Play, za darmo z zarzutem. QPython zawiera również pakiety bibliotek z kilku projektów Pythona na Androida, w tym Kivy, więc nie jest to tylko SL4A.]}

Zauważ, że QPython nadal rozwija widelec SL4A(choć szczerze mówiąc niewiele). Główny projekt SL4A jest prawie martwy.

Przydatne Linki

 81
Author: Carl Smith,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-10-12 02:28:19

Cross-Compilation & Ignifuga

Mój blog ma instrukcje i łatkę do kompilacji Pythona 2.7.2 dla Androida.

[[2]}mam również open source Ignifuga , mój silnik gry 2D. Jest oparty na Pythonie / SDL i krzyżuje się z Androidem. Nawet jeśli nie używasz go do gier, możesz uzyskać przydatne pomysły z narzędzia code lub builder (nazwanego Schafer, po Timie... wiesz kto).
 81
Author: gabomdq,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-11-12 23:59:45

Kivy

Chciałem dodać do tego, co @JohnMudd napisał o Kivy. Od opisanej przez niego sytuacji minęło wiele lat, a Kivy znacznie się rozwinął.

Moim zdaniem największą zaletą Kivy jest kompatybilność między platformami. Możesz kodować i testować wszystko za pomocą dowolnego środowiska graficznego (Windows / * nix itp.), a następnie spakuj aplikację na wiele różnych platform, w tym Android, iOS, MacOS i Windows (choć aplikacje często nie mają natywnego wyglądu i feel).

Za pomocą własnego języka KV Kivy można łatwo kodować i budować interfejs GUI (jest to tak jak Java XML, ale zamiast TextView itp., KV ma swój własny ui.widgets dla podobnego tłumaczenia), który jest moim zdaniem dość łatwy do przyjęcia.

Obecnie Buildozer i python-for-android są najbardziej zalecanymi narzędziami do tworzenia i pakowania aplikacji. Próbowałem ich obu i mogę śmiało powiedzieć, że sprawiają, że tworzenie aplikacji na Androida za pomocą Pythona jest proste. Ich przewodniki są również dobrze udokumentowane.

IOS to kolejny ważny punkt sprzedaży Kivy. Możesz użyć tej samej bazy kodu z kilkoma zmianami wymaganymi przez Kivy-iOS Homebrew tools, chociaż Xcode jest wymagany do kompilacji, przed uruchomieniem na ich urządzeniach(AFAIK symulator iOS w Xcode obecnie nie działa dla kompilacji architektury x86). Istnieją również pewne problemy z zależnościami, które muszą być ręcznie skompilowane i majstrował wokół w Xcode mieć pomyślny kompilacji, ale oni nie byłoby to zbyt trudne do rozwiązania, a ludzie z Kivy Google Group są naprawdę pomocni.

Biorąc to wszystko pod uwagę, użytkownicy z dobrą znajomością Pythona nie powinni mieć problemu z szybkim opanowaniem podstaw.

Jeśli używasz Kivy do poważniejszych projektów, istniejące moduły mogą okazać się niezadowalające. Istnieją jednak pewne wykonalne rozwiązania. Z (work in progress) pyjnius dla Androida i pyobjus, użytkownicy mogą teraz uzyskać dostęp do Java / Objective-C klasy do kontrolowania niektórych natywnych interfejsów API.

 51
Author: Anzel,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-11-13 00:18:07

Termux

Możesz użyć aplikacji Termux, która zapewnia środowisko POSIX dla Androida, aby zainstalować Pythona.

zauważ, że apt install python zainstaluje Python3 na Termux. Dla Python2, musisz użyć apt install python2.

 51
Author: Adrian Stanculescu,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-11-13 00:27:50

Nie w tej chwili i będziesz miał szczęście, że Jython wkrótce wróci do pracy. Jeśli planujesz rozpocząć swój rozwój już teraz, lepiej byłoby trzymać się Javy na razie.

 42
Author: Ilya Kochetov,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-03-23 14:58:45

Używając SL4A (o którym już wspomniano w innych odpowiedziach), możesz Uruchomić pełnowymiarową instancję web2py (inne Python web Framework są prawdopodobnie kandydatami). SL4A nie pozwala na tworzenie natywnych komponentów interfejsu użytkownika( przycisków, pasków przewijania itp.), ale obsługuje WebViews . WebView to w zasadzie nic więcej niż paski w dół przeglądarki internetowej skierowanej na stały adres. Uważam, że natywna aplikacja Gmail używa WebView zamiast idąc zwykłą trasą widgetów.

Ta trasa miałaby kilka ciekawych cech:

  • W przypadku większości frameworków internetowych Pythona można tworzyć i testować bez użycia urządzenia z Androidem lub emulatora Androida.
  • jakikolwiek Kod Pythona, który napiszesz dla telefonu, może być również umieszczony na publicznym serwerze WWW z bardzo małą (jeśli w ogóle) modyfikacją.
  • możesz wykorzystać wszystkie szalone rzeczy internetowe tam: query, HTML5, CSS3, itd.
 41
Author: gdw2,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-01-26 05:48:09

QPython

Używam aplikacji QPython . Jest bezpłatny i zawiera edytor kodu, interaktywny interpreter i menedżera pakietów, co pozwala na tworzenie i wykonywanie programów Pythona bezpośrednio na urządzeniu.

 35
Author: kyle k,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-11-13 00:23:46

From the Python for android site:

Python dla Androida to projekt do stworzenia własnej dystrybucji Pythona, w tym modułów, które chcesz, i utworzyć apk, w tym python, libs, i aplikacji.

 29
Author: gdw2,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-01-09 04:46:53

Proszę. są to niektóre narzędzia wymienione na oficjalnej stronie Pythona


W playstore znajduje się aplikacja o nazwie QPython3 , która może być używana zarówno do edycji, jak i uruchamiania skryptów Pythona.

Playstore link


Kolejna aplikacja o nazwie Termux , w której można zainstalować Pythona za pomocą polecenia

pkg install python

Playstore Link


Jeśli chcesz tworzyć aplikacje, Istnieje Python Android Scripting Layer (SL4A) .

The Scripting Layer for Android, SL4A, is an open source application that allows programs written in a range of interpreted languages to run on Android. It also provides a high level API that allows these programs to interact with the Android device, making it easy to do stuff like accessing sensor data, sending an SMS, rendering user interfaces and so on.


Możesz również sprawdzić PySide dla Androida, co jest właściwie wiązaniami Pythona dla Qt 4.


Jest platforma o nazwie PyMob gdzie aplikacje mogą być pisane wyłącznie w Pythonie, a kompilator tool-flow (PyMob) konwertuje je w natywne kody źródłowe dla różnych platform.

Zobacz też python-for-android

python-for-android is an open source build tool to let you package Python code into standalone android APKs. These can be passed around, installed, or uploaded to marketplaces such as the Play Store just like any other Android app. This tool was originally developed for the Kivy cross-platform graphical framework, but now supports multiple bootstraps and can be easily extended to package other types of Python apps for Android.


Spróbuj Chaquopy Python SDK dla Androida


I.. BeeWare

BeeWare allows you to write your app in Python and release it on multiple platforms. No need to rewrite the app in multiple programming languages. It means no issues with build tools, environments, compatibility, etc.

 24
Author: pz64_,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-02-13 05:55:33

Chaquopy

Chaquopy to wtyczka do systemu Android Studio Gradle. Skupia się na ścisłej integracji ze standardowymi narzędziami programistycznymi Androida.

  • Zapewnia kompletne interfejsy API do wywoływania Javy z Pythona lub Pythona z Javy , umożliwiając programistom używanie dowolnego języka dla każdego komponentu ich aplikacji.

  • Może automatycznie pobierać Pakiety PyPI i budować je w aplikacji, w tym wybranych pakietów natywnych, takich jak NumPy.

  • Umożliwia pełny dostęp do wszystkich API Androida z Pythona, w tym natywnego zestawu narzędzi interfejsu użytkownika (przykład aktywności pure-Python ).

Jest to produkt komercyjny, ale jest darmowy do użytku open-source i zawsze tak pozostanie.

(jestem twórcą tego produktu.)

 22
Author: mhsmith,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-02-16 17:12:15

Kolejna próba: https://code.google.com/p/android-python27/

Ten osadza bezpośrednio interpreter Pythona w aplikacji apk.

 21
Author: e-satis,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-05-09 15:44:49

Możesz uruchomić swój kod Pythona używając sl4a. sl4a obsługuje Python, Perl, JRuby, Lua , BeanShell, JavaScript, Tcl i skrypt powłoki.

Możesz nauczyć się sl4a Python Examples.

 17
Author: Hitul,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-01-13 00:34:26

Możesz użyć QPython :

Posiada konsolę Pythona, Edytor, a także Zarządzanie pakietami / instalatory

Http://qpython.com/

Jest to projekt open source z implementacjami Pythona 2 i Pythona 3. Możesz pobrać źródło i Androida .pliki apk bezpośrednio z github.

QPython 2: https://github.com/qpython-android/qpython/releases

QPython 3: https://github.com/qpython-android/qpython3/releases

 13
Author: ode2k,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-09-16 02:41:18

Inną opcją, jeśli szukasz 3.4.2 lub 3.5.1, jest to archiwum na Githubie.

Python3-Android 3.4.2 lub Python3-Android 3.5.1

Obecnie obsługuje Python 3.4.2 lub 3.5.1 i wersję 10D NDK. Może również obsługiwać 3.3 i 9c, 11c i 12

Fajnie, że po prostu go ściągasz, uruchamiasz make i dostajesz .so lub the .a

Obecnie używam tego do uruchamiania surowego Pythona na urządzeniach z Androidem. Z kilkoma modyfikacjami do pliki build można również zrobić x86 i armeabi 64 bit

 12
Author: GR Envoy,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-07-11 13:10:34

Nie widziałem tego tutaj, ale można to zrobić z Pyside i Qt teraz, że Qt działa na Androidzie dzięki Necessitas.

W tej chwili wydaje się to dość kludge, ale może być realna trasa w końcu...

Http://qt-project.org/wiki/PySide_for_Android_guide

 11
Author: radix07,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-10-06 14:59:14

Jeszcze jedną opcją wydaje się być pyqtdeploy który cytując docs jest:

Narzędzie, które w połączeniu z innymi narzędziami dostarczonymi z Qt umożliwia wdrażanie aplikacji PyQt4 i PyQt5 napisanych w języku Python v2. 7 lub Python V3.3 lub nowszy. Obsługuje wdrażanie na pulpicie platformy (Linux, Windows i OS X) oraz na platformy mobilne (iOS i Android).

Zgodnie z wdrażanie aplikacji PyQt5 na Androida za pośrednictwem pyqtdeploy i Qt5 jest aktywnie rozwijany, chociaż trudno jest znaleźć przykłady działających aplikacji na Androida lub samouczka, jak skompilować wszystkie wymagane biblioteki na Androida. Jest to ciekawy projekt, o którym należy pamiętać!

 9
Author: Andrzej Pronobis,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:18:36

Spójrz na BeeWare . Znacznie wzrosła. Jest laureatem PSF (Python Software Foundation) Education Grant.

Celem Beeware jest tworzenie natywnych aplikacji z Pythonem dla wszystkich obsługiwanych systemów operacyjnych, w tym Androida.

Oficjalna Strona: Beeware

Github Repo: https://github.com/beeware

 8
Author: DrawT,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-06-24 21:28:26

Sprawdź enaml-native , który wykorzystuje koncepcję React-native i stosuje ją do Pythona.

Pozwala użytkownikom tworzyć aplikacje z natywnymi widżetami Androida i zapewnia API do korzystania z bibliotek android i java z Pythona.

Integruje się również z android-studio i udostępnia kilka ciekawych funkcji programistycznych Reacta, takich jak przeładowywanie kodu i zdalne debugowanie.

 5
Author: frmdstryr,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-08-20 16:59:32