반응형

How to convert python script to exec file

 

기본적인 사용법

최근 파이썬으로 쓰여있는 코드를 다른 사람들이 함부로 볼 수 없게 실행파일로 만들어야 하는 일이 생겼었다.

구글링을 하다가 아주 적당한 패키지를 발견했다. 바로바로 PyInstaller

공식 사이트 설명에 따르면 python interpreter나 module의 설치 없이 실행할 수 있는 파일을 만들어 준다고 한다.

Window, Linux, MacOS에서 모두 사용할 수 있지만 cross-compile은 불가능하다고 한다. 즉, 윈도우에서 만들고 리눅스에서 사용은 안된다는 것.

설치 방법은 아주 간단하다. 본인이 원하는 환경에 따라서 둘 중 하나를 선택하면 된다.

conda install pyinstaller
pip install pyinstaller

기본적인 사용 방법도 아주 간단하다. 

먼저 실행파일로 만들기 원하는 python script를 준비한다. 예시 파일 이름은 hello.py

print('hello world')

그러면 다음과 같이 pyinstaller hello.py 형태로 사용할 수 있다.

(pytorch) hyeonjeong@baghyeonjeongs-MacBook-Pro Study % pyinstaller hello.py
487 INFO: PyInstaller: 5.6.2
487 INFO: Python: 3.9.15 (conda)
509 INFO: Platform: macOS-10.16-x86_64-i386-64bit
510 INFO: wrote /Users/hyeonjeong/Study/hello.spec
515 INFO: UPX is not available.
516 INFO: Extending PYTHONPATH with paths

그럼 다음과 같이 build, dist 폴더와 pythonscript.spec 파일이 생성된다.

(pytorch) hyeonjeong@baghyeonjeongs-MacBook-Pro Study % ls  
build		dist		hello.py	hello.spec

여기서 우리가 원하는 실행 파일은 dist 폴더 안에 pythonscript 이름의 폴더 안에 pythonscript 이름으로 생성되어 있다.

(pytorch) hyeonjeong@baghyeonjeongs-MacBook-Pro Study % ./dist/hello/hello
hello world

PyInstaller Manual

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

 

PyInstaller Manual — PyInstaller 5.8.0 documentation

PyInstaller bundles a Python application and all its dependencies into a single package. The user can run the packaged app without installing a Python interpreter or any modules. PyInstaller supports Python 3.7 and newer, and correctly bundles many major P

pyinstaller.org

 

반응형

+ Recent posts