pyinstaller 사용법
1. --name: 생성될 실행 파일 이름 지정
pyinstaller main.py --name=hello-world
위 명령어를 실행하면, `hello-world`라는 이름의 실행 파일이 생성됨.
2. --onefile: 하나의 실행 파일 생성
하나의 실행 파일로 묶어주는 옵션.
pyinstaller main.py --onefile
위 명령어를 실행하면, `dist` 폴더 안에 `main.exe`와 함께 필요한 파일들이 한 파일로 묶여져 `main.py`와 동일한 디렉토리 구조로 생성.
3. --onedir: 하나의 디렉토리에 실행 파일 생성
하나의 디렉토리에 실행 파일을 넣어주는 옵션.
pyinstaller main.py --onedir
위 명령어를 실행하면 `dist` 폴더 안에 `main`이라는 이름의 디렉토리가 생성되고, 그 안에 실행파일과 필요한 파일들이 저장.
4. --windowed: 창 없는 실행 파일 만들기
창 없이 실행되는 프로그램을 만들 때 사용하는 옵션.
pyinstaller main.py --windowed
위 명령어를 실행할 경우, 창 없이 실행되는 프로그램이 생성.
5. --console: 콘솔 환경에서 실행 파일 만들기
콘솔에서 실행되는 프로그램을 만들 때 사용.
pyinstaller main.py --console
위 명령어를 실행하면, 실행파일이 콘솔 환경에서 실행되는 창이 나타남.
6. --icon: 실행 파일의 아이콘 지정
만들어진 실행 파일에 아이콘을 설정할 수 있는 옵션.
pyinstaller main.py --icon=icon.ico
`--icon` 뒤에 아이콘의 경로 및 이름을 지정.
7. --add-data: 실행 파일과 함께 복사될 파일 또는 디렉토리 추가
실행 파일에 포함시킬 추가 파일이나 디렉토리 경로를 지정할 수 있음.
pyinstaller main.py --add-data=README.md;. --add-data=data:data
`--add-data` 뒤에 추가 파일의 경로를 지정하며, `;` 구분자를 이용해 여러개 지정할 수 있음. 예를 들어, `README.md`와 `data`라는 디렉토리를 추가할 경우, `--add-data=README.md;. --add-data=data:data`와 같은 명령어를 사용.
8. --exclude-module: 제외할 모듈 지정
번들링하면서 제외할 모듈을 지정할 수 있음.
pyinstaller main.py --exclude-module=tkinter -exclude-module=matplotlib
`--exclude-module` 옵션을 이용해 `tkinter`와 `matplotlib` 모듈을 제외할 경우, 위와 같이 명령어를 사용.
9. --hidden-import: 추가해야 할 임포트 패키지 지정
PyInstaller는 모든 모듈과 패키지를 찾아,d 소스코드나 바이너리 포함하는 실행 파일을 만드는데 사용된 모든 라이브러리에 대한 내용을 추적할 수 없기 때문에 유용한 옵션이다. 명시적으로 import가 없는 모듈이나 패키지를 잡지 못할 때 이 옵션을 이용하여 import를 해오는 옵션이다.
pyinstaller main.py --hidden-import=some.module.name
`--hidden-import` 옵션을 이용해 `some.module.name`모듈을 추가할 경우, 위와 같은 명령어를 사용.
10. --upx: UPX 압축 적용 여부 지정
UPX (Ultimate Packer for eXecutables)는 실행 파일을 압축하는 무료 오픈 소스 도구.
pyinstaller main.py --upx
`--upx` 옵션을 이용하여 압축 적용하고자 할 경우, 위와 같은 명령어를 사용.