2022. 5. 16. 20:21ㆍ프로젝트 로그/테스트x솔루션 JIG 개발기
라즈베리파이에서 실행되는 Python Application을 배포 할 때, Python Code가 통채로 보이는 것을 원치 않아 패키지 형태 및 실행 파일 형태로 배포 하고 싶었다.
찾아 보니, PyInstaller를 사용하면 구현한 Python 프로그램을 실행 파일 형태로 만들 수 있다. 본 글에서는 ARM Core(라즈베리파이4 Model B)에서 동작 할 수 있는 Python 실행 파일을 만드는 방법에 대해 설명한다.
※ PC 환경에서는 별 고민 없이 PyInstaller 명령을 사용하면 실행 파일을 만들 수 있다. 하지만 ARM Core 환경에서는 해당 실행 파일을 만들기 위한 PyInstaller 및 Python Module 들이 ARM Core 용으로 Cross Compile 되어 있어야 했다.
하지만 라즈베리파이에 설치되어 있는 PyInstaller에는 ARM Core용으로 Cross Compile 된 자원들이 없는 관계로 ARM용 PyInstaller Bootloader 설치 방법 부터 설명 한다.
사전 작업 : Linux-32bit-ARM용 PyInstaller의 Bootloader 설치
기존 RaspberryPi에 설치 되어 있는 PyInstaller에는 Linux-32bit-ARM용 Bootloader가 없다. 이로 인해, PyInstaller로 실행 파일을 만들 때 해당 폴더가 없다는 이유로 에러가 출력 된다.
이를 해결 하기 위해서는 아래 1. Build the Bootloader 절차를 수행 하면 된다.
1. Build the bootloader
git clone https://github.com/pyinstaller/pyinstaller
# Alternatively download the zip from https://github.com/pyinstaller/pyinstaller/releases
cd pyinstaller/bootloader
python ./waf distclean all # or python3
cd ../PyInstaller/bootloader/
ls
위 설치가 완료 되면, PyInstaller/bootloader 폴더에 Linux-32bit-arm 폴더가 생성된다.
2. Copy the bootloader
Linux-32bit-arm 폴더를 PyInstaller가 접근 하려 하는 폴더에 복사 한다.
$ pwd
/home/pi/pyinstaller/PyInstaller/bootloader
$ cp -rf Linux-32bit-arm /home/pi/.local/lib/python3.9/site-packages/PyInstaller/bootloader/
'프로젝트 로그 > 테스트x솔루션 JIG 개발기' 카테고리의 다른 글
[Github Action] Github Action을 이용하여 간단한 배포 자동화 구축하기 #2 (0) | 2022.05.26 |
---|---|
[Github Action] Github Action을 이용하여 간단한 배포 자동화 구축하기 #1 (0) | 2022.05.24 |
[라즈베리파이]opencv-python 설치 및 No module named 'cv2' 해결 (0) | 2022.05.19 |
[라즈베리파이]PyQt로 작성한 Application 서비스 등록 및 자동 실행 설정 (0) | 2022.05.18 |
[라즈베리파이] Python 프로그램을 라즈베리파이에서 실행 가능한 바이너리로 빌드 하기 (0) | 2022.05.17 |