어푸푸

파이썬 kivy 기반 안드로이드 앱 개발 환경 구축 (Ubuntu 20.04) 본문

잡동사니/IT

파이썬 kivy 기반 안드로이드 앱 개발 환경 구축 (Ubuntu 20.04)

예수님부처 2020. 6. 23. 17:23

필자는 자동화를 사랑한다. 특히 세상이 나에게 크고 아름다운 엿을 주었을 때 자동화에 대한 욕구가 샘솟는 편이다. 얼마전 뉴스타파의 보도 때문에 출퇴근 QR코드의 유효 시간이 짧아졌다. 출퇴근 QR 코드를 발급받은 후 3초 이내에 인식시켜야하는데, 학교 기기들이 그닥 최첨단이 아니라서 QR 코드를 이미지에서 인식하는데도 오래걸리고, 가끔 통신이 느려서 번개같이 QR 코드를 인식시켜도 서버 입장에서는 3초가 지나버리는 경우가 많다.

그렇게 불편하면 항의하면 되지 않겠냐고 말하는 사람들도 있겠지만, 기본적으로 과기원에서 전문연을 통해 병역 의무를 수행하는 사람은 을이다. 그것도 그냥 을이 아닌 아주 작은 을이다. Soy 을 muy pequeño... 치사하고 더러워도 새로 고침을 해가면서 될 때까지 QR 코드를 찍어대야하는 기구한 운명을 타고난 것이다. 심지어 아이폰에서는 학교에서 제공하는 QR 코드 생성 어플이 켜지지 않을 때가 많다. 이렇게 세상에 나에게 엿을 줄 때 나는 자동화를 꿈꾼다.

자동화를 어떻게 할까 고민을 했는데, 마침 파이썬의 kivy 및 buildozer라는 라이브러리를 이용하여 핸드폰 어플을 만들 수 있다고 해서 이를 구축하고, QR 코드를 자동으로 불러와주는 어플을 만들었다. 이를 위해서는 개발 환경을 구축해야 하는데, 넘어야 할 산이 한 두 개가 아니었다. 결국 환경을 구축하고 앱을 개발하는데 성공했으므로 환경을 구축하는 방법을 정리하여 여기에 남긴다.

0. Ubuntu를 다운 받는다. (현재 최신 버전 20.04이며, 본 포스트에서도 Ubuntu 20.04를 썼음)

1. VMware를 설치한다.

2. Ubuntu20.04를 VMware를 사용하여 설치한다.

3. VMtools를 설치한다. VMware 폴더의 linux.iso 파일을 VMware에 마운트하여 설치할 수 있다. 마운트 된 iso 파일은 /media/에서 볼 수 있다. 대충 다음과 같이 설치한다. 이때 폴더 username의 이름은 사람마다 다를 수 있으므로 알아서 잘 확인하고 설치한다.

$ mkdir ~/Desktop/VMT
$ cd ~/Desktop/VMT
$ cp /media/username/'VMware Tools'/*.tar.gz ./
$ tar zxvf ./*.tar.gz
$ sudo ./vmware-install.pl
$ cd ../
$ rm -rf ./VMT

4. 재부팅해준다.

5. 필요한 파이썬 패키지를 설치해준다.

$ sudo apt-get install zlib1g-dev libffi-dev libssl-dev git-core cython cython3 openjdk-14-jdk autoconf libltdl-dev libgl1-mesa-dev

6. pyenv를 설치한다.

$ git clone https://github.com/pyenv/pyenv.git ~/.pyenv
$ echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
$ echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
$ echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n  eval "$(pyenv init -)"\nfi' >> ~/.bashrc

7. 터미널을 껐다가 킨다.

7. python 3.7.0 버전을 설치한다. (kivy가 현재 3.7까지밖에 지원을 안한다.)

$ pyenv install 3.7.0
$ pyenv shell 3.7.0
$ python --version
$ python3 --version

8. 위에서 python과 python3의 버전이 3.7.0으로 나왔다면 잘 된 것이다. 다만 pyenv의 특성 상 터미널을 켤 때마다 pyenv shell 명령이를 이용해서 버전을 지정해줘야하니 이것이 귀찮다면 ~/.bashrc의 "pyenv init" 내용이 있는 if 블럭을 다음과 같이 바꿔주자.

if command -v pyenv 1>/dev/null 2>&1; then
  eval "$(pyenv init -)"
  pyenv shell 3.7.0
fi

9. pip를 설치하자. get-pip.py 최신 버전을 아래 주소에서 다운로드 받고 이를 ~/Desktop/에 옮겨놓자. 그렇다면 다음과 같이 설치할 수 있다. 당연한 이야기지만 pyenv를 통하여 python3 명령어의 파이썬 버전이 3.7.0으로 잡혀있는 상태여야 한다.
(https://bootstrap.pypa.io/get-pip.py)

$ python3 ~/Desktop/get-pip.py

10. kivy, buildozer를 설치하자. pip3을 이용한다.

$ pip3 install cython
$ pip3 install kivy
$ pip3 install buildozer

11. 끝

12. 왜 첫 줄이 들여쓰기가 되어있는지 모르겠다. 나도 에라 모르겠다.