[컴][안드로이드] P4A 설치하기 - Debian

Python for Android 사용하기 / Python for Android 설치하기 / 데비안 에서 P4A 사용

준비해야할 것 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>

설치

  1. virtualenv p4a -p /usr/bin/python2
  2. source activate
  3. pip install python-for-android
  4. 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
  5. 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 를 설치하자.
일단 아래 경로에서 다운로드를 받는다.

이제 이것을 원하는 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

  1. GitHub - kivy/python-for-android: Turn your Python application into an Android APK
  2. Build options — python-for-android 0.1 documentation
  3. Getting Started — python-for-android 0.1 documentation
  4. Installing OpenJDK 8 and Tomcat 8 on Debian Jessie \| IGA Made Muliarsa \| Pulse \| LinkedIn

### 준비해야할 것 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

댓글 없음:

댓글 쓰기