etc./StackOverFlow

Android에서 Python을 실행하는 방법이 있습니까?

청렴결백한 만능 재주꾼 2021. 12. 7. 00:50
반응형

질문자 :e-satis


우리는 S60 버전에서 작업 중이며 이 플랫폼에는 멋진 Python API가 있습니다.

하지만 안드로이드에서 파이썬에 대해 공식적인 것은 없지만, 자이썬 이 존재하기 때문에 뱀과 로봇이 함께 작동하게 하는 방법이 없을까요?



한 가지 방법은 Kivy를 사용하는 것입니다 .

멀티터치 앱과 같은 혁신적인 사용자 인터페이스를 사용하는 애플리케이션의 신속한 개발을 위한 오픈 소스 Python 라이브러리입니다.

Kivy는 Linux, Windows, OS X, Android 및 iOS에서 실행됩니다. 지원되는 모든 플랫폼에서 동일한 [python] 코드를 실행할 수 있습니다.

키비 쇼케이스 앱


JohnMudd

새로운 Android 스크립팅 환경 (ASE/SL4A) 프로젝트도 있습니다. 멋지고 기본 Android 구성 요소와 통합되어 있습니다.

참고: 더 이상 "활성 개발" 상태가 아니지만 일부 포크가 있을 수 있습니다.


Heat Miser

예! : 안드로이드 스크립팅 환경

SL4A를 통한 Matt Cutts 의 예 -- "6줄의 Python 코드로 작성된 바코드 스캐너가 있습니다.

 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)

unmounted

안드로이드용 파이게임 서브셋

Pygame 은 새로운 프로그래머에게 인기 있는 Python(데스크톱)용 2D 게임 엔진입니다. Android용 파이게임 서브세트 는 스스로를 다음과 같이 설명합니다.

...Pygame 기능의 하위 집합을 Android 플랫폼에 이식합니다. 이 프로젝트의 목표는 Android 전용 게임을 만들고 PC와 같은 플랫폼에서 Android로 게임을 쉽게 이식할 수 있도록 하는 것입니다.

예제에는 APK로 패키징된 완전한 게임이 포함되어 있는데, 이는 매우 흥미롭습니다.


muriloq

Python 애호가이자 Android 프로그래머로서 이것이 좋은 방법이 아니라는 점에 유감입니다. 두 가지 문제가 있습니다.

한 가지 문제는 Android 개발 도구에 프로그래밍 언어 이상의 것이 있다는 것입니다. 많은 Android 그래픽에는 HTML과 유사하게 디스플레이를 구성하기 위해 XML 파일이 포함됩니다. 내장된 Java 개체는 이 XML 레이아웃과 통합되며 논리에서 비트맵으로 이동하도록 코드를 작성하는 것보다 훨씬 쉽습니다.

다른 문제는 G1(그리고 아마도 가까운 장래에 다른 Android 기기)이 그렇게 빠르지 않다는 것입니다. 200MHz 프로세서와 RAM은 매우 제한적입니다. 자바에서도 앱을 완벽하게 매끄럽게 만들고 싶다면 더 많은 객체 생성을 피하기 위해 상당한 양의 재작성을 해야 합니다. Python은 모바일 장치에서 잠시 동안 너무 느릴 것입니다.


lacker

크로스 컴파일 및 Ignifuga

내 블로그에는 Android용 Python 2.7.2를 크로스 컴파일하기 위한 지침과 패치가 있습니다.

또한 2D 게임 엔진인 Ignifuga를 오픈 소스로 제공했습니다. Python/SDL 기반이며 Android용 크로스 컴파일입니다. 게임에 사용하지 않더라도 코드 또는 빌더 유틸리티( Tim의 이름을 딴 Schafer ... 누군지 알 수 있음)에서 유용한 아이디어를 얻을 수 있습니다.


gabomdq

Android용 스크립팅 레이어

SL4A 는 당신이 원하는 것을 합니다. 사이트에서 장치에 직접 쉽게 설치할 수 있으며 루트가 필요하지 않습니다.

다양한 언어를 지원합니다. 파이썬이 가장 성숙합니다. 기본적으로 Python 2.6을 사용하지만 대신 사용할 수 있는 3.2 포트가 있습니다. 나는 Galaxy S2의 모든 종류의 것들에 그 포트를 사용했으며 잘 작동했습니다.

API

SL4A는 지원되는 각 언어에 대한 android 라이브러리 포트를 제공합니다. Android 개체를 통해 기본 Android API에 대한 인터페이스를 제공합니다.

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

각 언어에는 거의 동일한 API가 있습니다. webview 내에서 JavaScript API를 사용할 수도 있습니다.

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

사용자 인터페이스

사용자 인터페이스에는 세 가지 옵션이 있습니다.

  • API를 통해 일반 기본 대화 및 메뉴를 쉽게 사용할 수 있습니다. 이것은 확인 대화 및 기타 기본 사용자 입력에 좋습니다.
  • Python 스크립트 내에서 웹 보기를 연 다음 사용자 인터페이스에 HTML5를 사용할 수도 있습니다. Python에서 webview를 사용하는 경우 webview와 이를 생성한 Python 프로세스 간에 메시지를 앞뒤로 전달할 수 있습니다. UI는 기본이 아니지만 여전히 좋은 옵션입니다.
  • 기본 Android 사용자 인터페이스에 대한 일부 지원이 있지만 제대로 작동하는지 잘 모르겠습니다. 나는 그것을 사용한 적이 없습니다.

옵션을 혼합할 수 있으므로 기본 인터페이스에 대한 웹 보기가 있고 기본 대화 상자를 계속 사용할 수 있습니다.

Q파이썬

QPython 이라는 타사 프로젝트가 있습니다. SL4A를 기반으로 하며 다른 유용한 기능을 제공합니다.

QPython은 설치를 관리하기 위한 더 나은 UI를 제공하며 약간의 터치스크린 코드 편집기, Python 셸 및 패키지 관리를 위한 PIP 셸이 포함되어 있습니다. 또한 Python 3 포트가 있습니다. 두 버전 모두 Play 스토어에서 무료로 사용할 수 있습니다. QPython은 Kivy를 포함한 Android 프로젝트의 Python 무리에서 라이브러리를 번들로 제공하므로 SL4A만이 아닙니다.

QPython은 여전히 SL4A 포크를 개발하고 있습니다(솔직히 많지는 않지만). 주요 SL4A 프로젝트 자체는 거의 죽었습니다.

유용한 링크


Carl Smith

터먹스

Android용 POSIX 환경을 제공하는 Termux 앱을 사용하여 Python을 설치할 수 있습니다.

apt install python 은 Termux에 Python3을 설치합니다. Python2의 경우 apt install python2 를 사용해야 합니다.


Adrian Stanculescu

키비

@JohnMudd가 Kivy에 대해 쓴 내용에 추가하고 싶었습니다. 그가 설명한 상황 이후 몇 년이 지났고 Kivy는 상당히 발전했습니다.

제 생각에 Kivy의 가장 큰 장점은 크로스 플랫폼 호환성입니다. 모든 데스크톱 환경(Windows/*nix 등)을 사용하여 모든 것을 코딩하고 테스트한 다음 Android, iOS, MacOS 및 Windows를 포함한 다양한 플랫폼용으로 앱을 패키징할 수 있습니다(앱에는 기본 모양과 느낌이 부족한 경우가 많음).

Kivy의 자체 KV 언어를 사용하면 GUI 인터페이스를 쉽게 코딩하고 구축할 수 있습니다(Java XML과 비슷하지만 TextView 등이 아닌 KV에는 유사한 번역을 위한 ui.widgets 입양하다.

현재 Buildozerpython-for-android 는 앱을 빌드하고 패키징하는 데 가장 권장되는 도구입니다. 둘 다 사용해 보았고 Python으로 Android 앱을 쉽게 구축할 수 있다고 단호하게 말할 수 있습니다. 그들의 가이드도 잘 문서화되어 있습니다.

iOS는 Kivy의 또 다른 큰 장점입니다. kivy-ios Homebrew 도구를 통해 필요한 몇 가지 변경 사항으로 동일한 코드 기반을 사용할 수 있지만 Xcode는 장치에서 실행하기 전에 빌드에 필요합니다(AFAIK Xcode의 iOS 시뮬레이터는 현재 x86 아키텍처 빌드에서 작동하지 않음) . 또한 성공적인 빌드를 위해 Xcode에서 수동으로 컴파일하고 만지작거려야 하는 몇 가지 종속성 문제가 있지만 해결하기가 그리 어렵지 않으며 Kivy Google Group의 사람들도 정말 도움이 됩니다.

이 모든 것을 말하지만, 좋은 Python 지식을 가진 사용자는 기본 사항을 빠르게 습득하는 데 아무런 문제가 없습니다.

더 심각한 프로젝트에 Kivy를 사용하는 경우 기존 모듈이 불만족스러울 수 있습니다. 그러나 몇 가지 실행 가능한 솔루션이 있습니다. Android용 (진행 중인 작업) pyjnius 및 pyobjus 를 통해 사용자는 이제 Java/Objective-C 클래스에 액세스하여 일부 기본 API를 제어할 수 있습니다.


Anzel

현재로서는 그렇지 않으며 Jython이 곧 작동하도록 하면 운이 좋을 것입니다. 지금 개발을 시작할 계획이라면 지금은 Java를 고수하는 것이 더 나을 것입니다.


Ilya Kochetov

SL4A(이미 다른 답변에서 자체적으로 언급됨)를 사용하면 본격적인 web2py 인스턴스를 실행할 수 있습니다(다른 파이썬 웹 프레임워크 도 후보가 될 수 있음). SL4A는 기본 UI 구성 요소(버튼, 스크롤 막대 등)를 수행하는 것을 허용하지 않지만 WebView를 지원합니다. WebView는 기본적으로 고정 주소를 가리키는 줄무늬 웹 브라우저에 불과합니다. 기본 Gmail 앱은 일반 위젯 경로를 사용하는 대신 WebView를 사용한다고 생각합니다.

이 경로에는 몇 가지 흥미로운 기능이 있습니다.

  • 대부분의 파이썬 웹 프레임워크의 경우 안드로이드 기기나 안드로이드 에뮬레이터를 사용하지 않고도 실제로 개발하고 테스트할 수 있습니다.
  • 전화용으로 작성하는 Python 코드가 무엇이든 간에 (있는 경우) 거의 수정하지 않고 공용 웹 서버에 올릴 수도 있습니다.
  • 쿼리, HTML5, CSS3 등 모든 미친 웹 항목을 활용할 수 있습니다.

gdw2

Q파이썬

QPython 앱을 사용합니다. 무료이며 코드 편집기, 대화형 인터프리터 및 패키지 관리자가 포함되어 있어 장치에서 직접 Python 프로그램을 만들고 실행할 수 있습니다.


kyle k

Android용 Python 사이트에서:

Python for android는 원하는 모듈을 포함하는 나만의 Python 배포판을 만들고 python, libs 및 애플리케이션을 포함하는 apk를 만드는 프로젝트입니다.


gdw2

다음 은 공식 python 웹 사이트에 나열된 몇 가지 도구입니다.


python 스크립트를 편집하고 실행하는 데 사용할 수 있는 Playstore 에 QPython3이라는 앱이 있습니다.

플레이스토어 링크


명령을 사용하여 파이썬을 설치할 수 있는 Termux 라는 또 다른 앱

 pkg install python

플레이스토어 링크


앱을 개발하려면 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.


실제로 Qt 4에 대한 Python 바인딩인 Android용 PySide를 확인할 수도 있습니다.


앱을 순수하게 Python으로 작성할 수 있는 PyMob 이라는 플랫폼이 있으며 컴파일러 도구 흐름(PyMob)이 앱을 다양한 플랫폼의 기본 소스 코드로 변환합니다.


또한 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.


Android용 Chaquopy A Python SDK 사용해 보기


Anddd... 비 웨어

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.


pz64_

차쿼피

Chaquopy 는 Android Studio의 Gradle 기반 빌드 시스템용 플러그인입니다. 표준 Android 개발 도구와의 긴밀한 통합 에 중점을 둡니다.

이것은 상용 제품이지만 오픈 소스 사용을 위해 무료이며 항상 그런 식으로 유지됩니다.

(저는 이 제품을 만든 사람입니다.)


mhsmith

또 다른 시도: https://code.google.com/p/android-python27/

이것은 앱 APK에 Python 인터프리터를 직접 포함합니다.


e-satis

sl4a 를 사용하여 Python 코드를 실행할 수 있습니다. sl4a는 Python, Perl , JRuby , Lua , BeanShell, JavaScript, Tcl 및 쉘 스크립트를 지원합니다.

sl4a Python 예제를 배울 수 있습니다.


Hitul

QPython 을 사용할 수 있습니다.

Python 콘솔, 편집기 및 패키지 관리/설치 프로그램이 있습니다.

http://qpython.com/

Python 2 및 Python 3 구현이 모두 포함된 오픈 소스 프로젝트입니다. github에서 직접 소스 및 Android .apk 파일을 다운로드할 수 있습니다.

Q파이썬 2: https://github.com/qpython-android/qpython/releases

Q파이썬 3: https://github.com/qpython-android/qpython3/releases


ode2k

3.4.2 이상(이 글을 쓰는 시점에서 3.9.6)을 찾고 있는 경우 다른 옵션은 GitHub의 이 아카이브입니다.

Python3-Android 3.4.2 또는 Python3-Android 3.9.6

원본 아카이브는 Python 3.4.2, 최신 GRRedwings 분기 지원 3.9.6 및 22b 버전의 NDK를 지원한다고 생각합니다. 이전 브랜치는 다른 버전을 지원하지만 docker로 컴파일하기가 쉽지 않습니다.

이전 버전은 단순히 아카이브를 복제하고 make를 실행하면 .so 또는 .a

최신 버전은 ReadMe를 따르지만 일관된 빌드를 위해 도커를 사용합니다.

나는 현재 이것을 사용하여 안드로이드 장치에서 원시 Python을 실행합니다. 빌드 파일을 몇 가지 수정하면 x86 및 armeabi를 64비트로 만들 수도 있습니다.


GR Envoy

여기에 게시된 것을 보지 못했지만 Necessitas 덕분에 Qt가 Android에서 작동하므로 Pyside 및 Qt로 할 수 있습니다.

현재로서는 꽤 엉성한 것처럼 보이지만 결국에는 실행 가능한 경로가 될 수 있습니다 ...

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


radix07

BeeWare를 살펴보십시오. 그것은 크게 성장했습니다. PSF(Python Software Foundation) 교육 보조금으로 수여됩니다.

Beeware의 목표는 Android를 포함하여 지원되는 모든 운영 체제에 대해 Python으로 기본 앱을 만들 수 있도록 하는 것입니다.

공식 웹사이트: 비 웨어

Github 리포지토리: https://github.com/beeware


DrawT

문서를 인용하는 pyqtdeploy 옵션이 하나 더 있는 것 같습니다.

Qt와 함께 제공되는 다른 도구와 함께 Python v2.7 또는 Python v3.3 이상으로 작성된 PyQt4 및 PyQt5 애플리케이션의 배포를 가능하게 하는 도구입니다. 데스크톱 플랫폼(Linux, Windows 및 OS X) 및 모바일 플랫폼(iOS 및 Android)에 대한 배포를 지원합니다.

Deploying PyQt5 application to Android via pyqtdeploy and Qt5 에 따르면 Android 앱이 작동하는 예나 필요한 모든 라이브러리를 Android로 교차 컴파일하는 방법에 대한 자습서를 찾기는 어렵지만 활발히 개발되고 있습니다. 그래도 명심해야 할 흥미로운 프로젝트입니다!


Andrzej Pronobis

react-native 개념을 파이썬에 적용한 enaml-native 를 확인해보세요.

이를 통해 사용자는 기본 Android 위젯으로 앱을 빌드할 수 있으며 Python의 Android 및 Java 라이브러리를 사용하기 위한 API를 제공합니다.

또한 android-studio와 통합되고 코드 다시 로드 및 원격 디버깅과 같은 반응의 멋진 개발 기능 중 일부를 공유합니다.


frmdstryr

출처 : http:www.stackoverflow.com/questions/101754/is-there-a-way-to-run-python-on-android

반응형