[라즈베리파이] Python 프로그램을 라즈베리파이에서 실행 가능한 바이너리로 빌드 하기

2022. 5. 17. 15:49프로젝트 로그/테스트x솔루션 JIG 개발기

반응형

Python으로 작성된 프로그램을 임베디드 보드에 설치 해서 출시 할 때, 코드 형태로 실행 하게 되면 제품의 보안 문제와 

제품의 소스코드를 통채로 노출 하게 되는 단점이 있다.

 

이를 해결 하기 위해, PyInstaller를 이용하여 Python 프로그램을 실행 가능한 바이너리로 만들 수 있다.

별다른 작업 없이 PyInstaller를 설치 하고 실행하면 x86(인텔) 프로세서용 실행 파일이 만들어 진다. 하지만 라즈베리파이는 ARM 프로세서로 구성되어 있기 때문에 ARM용 실행 파일을 만들어야 하는데, ARM 실행 파일을 만들기 위해서는 PyInstaller에 별도의 작업을 해야 한다.

 

해당 작업 절차는 아래 글을 참고 한다.

https://kaizen8501.tistory.com/207

 

실행 파일 만들기 위한 명령

pyinstaller --onefile --clean -p /home/pi/testxStdJig_V2 /home/pi/testxStdJig_V2/main.py

 

Pyinstaller 옵션

변환 방식

-D, --onedir -F, --onefile
1개 폴더로 변환(기본값) 1개의 exe파일로 변환
(체감상 전자보다 실행속도가 느림)

Path 지정

-p DIR, --paths DIR
프로그램이 수행하기 위한 기본 Path 지정

이름 지정

-n NAME, --name NAME
변환될 이름 지정, 별도로 지정하지 않을 경우 스크립트 이름을 따라감
(예 : -n 테스트.exe)

콘솔 윈도우 여부

-c, --console, --nowindowed -w, --windowed, --noconsole
콘솔 윈도우 표시(기본값) 콘솔 윈도우 표시 안함

파일추가

--add-data <SRC;DEST or SRC:DEST>
프로그램 실행시 추가적으로 필요한 파일이 있을 경우 사용
소스파일과 경로 구분자는 윈도우 환경에서는 세미콜론(;), 유닉스 환경에서는 콜론(:)으로 구분한다 함

추가 옵션 정보

https://pyinstaller.org/en/stable/usage.html

 

Using PyInstaller — PyInstaller 5.0.1 documentation

Making GNU/Linux Apps Forward-Compatible Under GNU/Linux, PyInstaller does not bundle libc (the C standard library, usually glibc, the Gnu version) with the app. Instead, the app expects to link dynamically to the libc from the local OS where it runs. The

pyinstaller.org

 

참고자료

 

 

반응형