준비해야할 것 Prequisites
안타깝게 python-for-android 는 Linux/Mac 에서만 동작한다. 여기서는 linux 에서 작업할 것이다.
windows 에서는 아래와 같은 error 를 내뿜는다.
(py4a) c:\a\envs\py4a\Scripts>python-for-android.exe
Traceback (most recent call last):
File "c:\program files\python34\Lib\runpy.py", line 170, in _run_module_as_main
"__main__", mod_spec)
File "c:\program files\python34\Lib\runpy.py", line 85, in _run_code
exec(code, run_globals)
File "c:\a\envs\py4a\Scripts\python-for-android.exe\__main__.py", line 5, in <module>
File "c:\a\envs\py4a\lib\site-packages\pythonforandroid\toolchain.py", line 24, in <module>
import sh
File "c:\a\envs\py4a\lib\site-packages\sh.py", line 36, in <module>
support." % __version__)
ImportError: sh 1.12.10 is currently only supported on linux and osx. please install pbs 0.110 (http://pypi.python.org/pypi/pbs) for windows support.
환경
- OS : Debian 8.7.1 (64bit) - GNOME
- HDD : 8GB 이상 필요
- python : Python 2.3.4ref2, python-pip, virtualenv
python3 버전은 아직 실험버전이다.
Debian 에서 pip 와 virtualenv 설치
$ su ... root$ apt-get install python-pip root$ pip install virtualenv root$ exit $ virtualenv <prj_name>
설치
- virtualenv p4a -p /usr/bin/python2
- source activate
- pip install python-for-android
- install dependencies ref3
- sudo dpkg –add-architecture i386
- sudo apt-get update
- sudo apt-get install -y build-essential git zlib1g-dev python2.7 python2.7-dev libncurses5:i386 libstdc++6:i386 zlib1g:i386 openjdk-8-jdk unzip ant ccache - Android SDK/NDK 설치
- Download Android Studio and SDK Tools \| Android Studio
- NDK Downloads \| Android Developers
- ~/.bashrc 에 환경변수 추가
python-for-android
~/env$ virtualenv p4a -p /usr/bin/python2
...
~/env/p4a/bin/$ source activate
(p4a) ~/env/p4a/bin/$ pip install python-for-android
dependency
dependency 들을 설치하자. 그리고 $JAVA_HOME 을 설정해주자.
$ sudo dpkg --add-architecture i386
$ sudo apt-get update
$ sudo apt-get install -y build-essential git zlib1g-dev python2.7 python2.7-dev libncurses5:i386 libstdc++6:i386 zlib1g:i386 openjdk-8-jdk unzip ant ccache
$ sudo echo JAVA_HOME=\"/usr/lib/jvm/default-java\" >> /etc/environment
$ source /etc/environment
$ echo $JAVA_HOME
Android SDK/NDK
이제 Android SDK/NDK 를 설치하자.
일단 아래 경로에서 다운로드를 받는다.
- Android Studio and SDK Tools : tools_r25.2.3-linux.zip
sdk 를 download 하는 경로는 페이지 제일 하단으로 내려가서 찾아보면 된다. - NDK Downloads : android-ndk-r14-linux-x86_64.zip
이제 이것을 원하는 directory 에 풀어준다. 여기서는 ~/a/android/ 에 풀어넣었다. “./android” 를 실행하면 된다. 단 Gtk 를 실행하므로 Windows 환경에서 해야 한다.(참고)
$ unzip <android_sdk>.zip ~/a/android/android-sdk-25.2.3
$ unzip <android_ndk>.zip ~/a/android
$ cd ~/a/android/android-sdk-25.2.3
$ ./tools/android
~/.bashrc 에 변수 추가
# Android values
export ANDROIDSDK="$HOME/a/android/android-sdk-25.2.3"
export ANDROIDNDK="$HOME/a/android/android-ndk-r13b"
export ANDROIDAPI="14" # Minimum API version your application require
export ANDROIDNDKVER="r13b" # Version of the NDK you installed
Build
이제 python application 을 apk package 로 만들어 보자. 여기서는 WebView application 을 가지고 테스트 한다. 다른 종류의 application 에 대해서는 ref3 의 Build Application 부분을 참고하자.
$ p4a apk --private $HOME/code/myapp --package=org.example.myapp --name "My WebView Application" --version 0.1 --bootstrap=webview --requirements=flask --port=5000
References
### 준비해야할 것 Prequisites 안타깝게 python-for-android 는 Linux/Mac 에서만 동작한다. 여기서는 linux 에서 작업할 것이다. windows 에서는 아래와 같은 error 를 내뿜는다. ```console (py4a) c:\a\envs\py4a\Scripts>python-for-android.exe Traceback (most recent call last): File "c:\program files\python34\Lib\runpy.py", line 170, in _run_module_as_main "__main__", mod_spec) File "c:\program files\python34\Lib\runpy.py", line 85, in _run_code exec(code, run_globals) File "c:\a\envs\py4a\Scripts\python-for-android.exe\__main__.py", line 5, in <module> File "c:\a\envs\py4a\lib\site-packages\pythonforandroid\toolchain.py", line 24, in <module> import sh File "c:\a\envs\py4a\lib\site-packages\sh.py", line 36, in <module> support." % __version__) ImportError: sh 1.12.10 is currently only supported on linux and osx. please install pbs 0.110 (http://pypi.python.org/pypi/pbs) for windows support. ``` ### 환경 - OS : Debian 8.7.1 (64bit) - GNOME - HDD : 8GB 이상 필요 - python : Python 2.3.4[ref2][], python-pip, virtualenv python3 버전은 아직 실험버전이다. > ### Debian 에서 pip 와 virtualenv 설치 > > ```console > $ su > ... > root$ apt-get install python-pip > root$ pip install virtualenv > root$ exit > $ virtualenv <prj_name> > ``` ### 설치 1. virtualenv p4a -p /usr/bin/python2 1. source activate 1. pip install python-for-android 1. install dependencies [ref3][] - sudo dpkg --add-architecture i386 - sudo apt-get update - sudo apt-get install -y build-essential git zlib1g-dev python2.7 python2.7-dev libncurses5:i386 libstdc++6:i386 zlib1g:i386 openjdk-8-jdk unzip ant ccache 1. Android SDK/NDK 설치 - [Download Android Studio and SDK Tools \| Android Studio](https://developer.android.com/studio/index.html#Other) - [NDK Downloads \| Android Developers](https://developer.android.com/ndk/downloads/index.html) - ~/.bashrc 에 환경변수 추가 #### python-for-android ```console ~/env$ virtualenv p4a -p /usr/bin/python2 ... ~/env/p4a/bin/$ source activate (p4a) ~/env/p4a/bin/$ pip install python-for-android ``` #### dependency dependency 들을 설치하자. 그리고 $JAVA_HOME 을 설정해주자. ```console $ sudo dpkg --add-architecture i386 $ sudo apt-get update $ sudo apt-get install -y build-essential git zlib1g-dev python2.7 python2.7-dev libncurses5:i386 libstdc++6:i386 zlib1g:i386 openjdk-8-jdk unzip ant ccache $ sudo echo JAVA_HOME=\"/usr/lib/jvm/default-java\" >> /etc/environment $ source /etc/environment $ echo $JAVA_HOME ``` #### Android SDK/NDK 이제 Android SDK/NDK 를 설치하자. 일단 아래 경로에서 다운로드를 받는다. - [Android Studio and SDK Tools](https://developer.android.com/studio/index.html#Other) : tools_r25.2.3-linux.zip sdk 를 download 하는 경로는 페이지 제일 하단으로 내려가서 찾아보면 된다. - [NDK Downloads](https://developer.android.com/ndk/downloads/index.html) : android-ndk-r14-linux-x86_64.zip 이제 이것을 원하는 directory 에 풀어준다. 여기서는 ~/a/android/ 에 풀어넣었다. "./android" 를 실행하면 된다. 단 Gtk 를 실행하므로 Windows 환경에서 해야 한다.([참고](http://i5on9i.blogspot.kr/2017/03/debian-android-sdk.html)) ```console $ unzip <android_sdk>.zip ~/a/android/android-sdk-25.2.3 $ unzip <android_ndk>.zip ~/a/android $ cd ~/a/android/android-sdk-25.2.3 $ ./tools/android ``` ##### ~/.bashrc 에 변수 추가 ``` # Android values export ANDROIDSDK="$HOME/a/android/android-sdk-25.2.3" export ANDROIDNDK="$HOME/a/android/android-ndk-r13b" export ANDROIDAPI="14" # Minimum API version your application require export ANDROIDNDKVER="r13b" # Version of the NDK you installed ``` ### Build 이제 python application 을 apk package 로 만들어 보자. 여기서는 WebView application 을 가지고 테스트 한다. 다른 종류의 application 에 대해서는 [ref3][] 의 Build Application 부분을 참고하자. ```console $ p4a apk --private $HOME/code/myapp --package=org.example.myapp --name "My WebView Application" --version 0.1 --bootstrap=webview --requirements=flask --port=5000 ``` ## References 1. [GitHub \- kivy/python\-for\-android: Turn your Python application into an Android APK][ref1] 1. [Build options — python\-for\-android 0\.1 documentation][ref2] 1. [Getting Started — python\-for\-android 0\.1 documentation][ref3] 1. [Installing OpenJDK 8 and Tomcat 8 on Debian Jessie \| IGA Made Muliarsa \| Pulse \| LinkedIn][ref4] [ref1]: https://github.com/kivy/python-for-android [ref2]: https://python-for-android.readthedocs.io/en/latest/buildoptions/#python-versions [ref3]: https://python-for-android.readthedocs.io/en/latest/quickstart/#installing-dependencies [ref4]: https://www.linkedin.com/pulse/installing-openjdk-8-tomcat-debian-jessie-iga-made-muliarsa
댓글 없음:
댓글 쓰기