개요
파이썬으로 개발한 프로그램을 외부로 배포해야할 수 있다. 외부의 환경에서는 프로그램이 사용하는 모듈이나 라이브러리가 없을 수 있고, 파이썬 자체가 설치되어 있지 않을 수도 있다. PyInstaller를 이용하면 프로그램에서 이용하는 모든 것을 패키징할 수 있다.
사용방법
다음은 PyInstaller 매뉴얼이다.
https://pyinstaller.org/en/v4.2/index.html
먼저 PyInstaller는 설치한다.
pip install pyinstaller
다음으로 실행시킬 파이썬 파일을 지정하여 전체 프로그램을 패키징한다.
pyinstaller --onefile main.py
PyInstaller는 지정된 파이썬 파일로부터 재귀적으로 종속적인 모듈들을 모두 수집하여 바이너리파일로 패키징한다. 다음과 같은 파일들이 생성된다.
build 파일은 PyInstaller의 빌드를 위한 임시 파일이다. 다시 빌드할 때, 이 파일이 있으면 빨라진다.
spec 파일은 빌드를 커스텀하기 위한 파일이다. (포함시킬 모듈 지정 등)
최종적으로는 실행파일에 모든 내용이 담겨있기 때문에 실행파일 외에는 배포할 필요가 없다.
실행파일은 dist 디렉터리 내부에 생성된다.
PyArmor를 이용한 암호화
PyInstaller를 이용하여 패키징하는 경우 코드에 대한 암호화 작업은 따로 해주지 않기 때문에, 코드가 유출될 수 있다. 그러므로 패키지를 암호화해주어야 하는데 이를 위해 PyArmor를 이용하면 된다.
다음은 PyArmor 매뉴얼이다.
https://pyarmor.readthedocs.io/en/stable/tutorial/obfuscation.html
pyinstaller는 설치되어있다고 가정한다.
pyarmor를 설치한다.
pip install pyarmor
다음 명령어를 통해 암호화된 패키징을 만들 수 있다. (pyarmor가 내부적으로 pyinstaller를 이용함)
pyarmor gen --pack onefile foo.py
실행파일이 생성됨을 확인한다.
dist/foo
'프로그래밍 > Python' 카테고리의 다른 글
[Python] literal_eval을 이용한 외부 python 파일 읽기 (0) | 2024.08.15 |
---|---|
[Python] Python의 모듈 참조 (0) | 2024.05.29 |