정성 들여 코딩한 결과물을 배포하는 경우 직접 코딩한 소스를 배포할 수 도 있지만, 보안 및 여러 다양한 문제들로 인해 소스 자체를 배포하기보단 exe 실행파일로 만들어서 배포하는 경우가 대부분입니다.
파이썬에서도 exe 파일을 생성할 수 있는 다양한 라이브러리들이 제공되는데, 저 같은 경우는 가장 쉽고 편하다고 알려진 "pyinstaller"를 사용하고 있으며, 이 시간에는 pyinstaller를 통해 exe 파일을 생성하는 방법에 대해 알아보도록 하겠습니다.
우선 pyinstaller를 사용하기 위해서는 당연히 pyinstaller 가 사전에 설치가 되어 있어야 합니다.
pyinstaller 설치는 아래와 같이 pip 명령어를 통해 손쉽게 설치가 가능합니다.
#pip install pyinstaller
1. 참고사항
pyinstaller를 통해 실행파일을 만들 수 있는 형태는 크게 2가지 입니다.
1) 하나의 exe 실행파일 형태
가) pyinstaller를 통해 하나의 exe 파일을 생성하는 것이며, 가장 보편적이고 많이 사용하는 형태라고 생각됩니다.
나) 장/단점
- 장점 : 하나의 exe 파일로 배포 가능하며, 압축이 되어 exe 파일사이즈가 작다.
- 단점 : 프로그램 실행시 압축된 exe 파일을 압축해제 후 프로그램이 실행되다 보니 디렉토리 형태에 비해 실행 속도가 느리다.
2) 디렉토리 형태 (여러 부가적인 파일 포함)
가) pyinstaller를 통해 하나의 exe 파일을 생성하는 것이 아닌, exe 파일 실행 시 필요한 부가적인 파일들도 같이 디렉토리 내에 표기 됩니다.
나) 장/단점
- 장점 : 별도의 압축해제 과정이 없어서 프로그램 실행속도가 빠르다.
- 단점 : 파일이 많기 때문에 관리가 번거로우며, 실행파일 사이즈가 압축이 되지 않다보니 하나의 exe 파일 형태보다 파일의 사이즈가 크다.
다시한번 위 2가지 방법의 가장 큰 차이점을 살펴보면 아래와 같습니다.
1) 하나의 exe 실행파일로 생성할지 여부와
2) 프로그램 실행 속도 입니다.
하나의 exe 파일로 생성하는 경우 사용자가 프로그램을 실행 시 exe 로 묶여 있는 파일을 풀어서 실행해 주는 과정이 필요하며, 하나의 실행 파일이 아닌 여러 파일로 생성된 경우는 이 과정이 생략되기 때문에 프로그램 실행 속도 차이가 발생할 수 밖에 없습니다.
파일 사이즈가 작은 경우에는 그 차이가 미비하겠지만, 파일 사이즈가 큰 경우에는 이 차이가 상당하기 때문에 참조하시어 실행파일을 만드시기 바랍니다.
※ 참고적으로 최근 Trend 분석 테스트로 인해 fbprophet 을 통해 코드 작성 후 실행파일을 생성한 경우가 있는데, exe 파일 하나로 묶은 경우 파일 사이즈가 압축이 되어서 300 MB 였었고, 디렉토리 형태로 만든 경우에는 압축이 되지 않아 1 GB가 좀 넘었습니다. 그리고 실행 속도는 exe파일로 만든 경우가 디렉토리 형태로 만든 파일 보다 2배 더 느린 속도를 보였습니다.
2. exe 실행파일 만들기
저 같은 경우 파이참을 통해 모든 작업이 이루어 지다 보니 파이참을 통해 exe 파일을 만드는 과정을 보여드리는 부분 참조해 주시기 바랍니다.
pyinstaller를 통해 exe 파일을 만드는 방법은 생각보다 쉽습니다.
결국 아래의 명령어로 exe 파일 생성이 가능하며, 부가적인 옵션사항에 대해서만 숙지하셔도 기본적인 부분은 충분하다고 생각됩니다.
#pyinstaller 파이썬소스.py
1) exe 실행파일 만들기
가) 명령어
#pyinstaller 파이썬소스.py
나) 참조예시
2) exe 실행파일 확인
- exe 실행파일은 해당 파이썬 코드가 위치한 프로젝트 경로에 가시면 "dist"라고 하는 디렉토리에 실행파일이 만들어 지제 됩니다.
- 기본적으로 아무 옵션 없이 exe파일을 만들게 되는 경우 예시와 같이 디렉토리 형태로 실행파일이 만들어 집니다.
3) 옵션 내역
- 우선 가장 많이 사용되는 옵션들로만 정리 하였습니다.
구 분 | 옵 션 | 참조 명령어 |
하나의 exe 실행파일 생성 | --onefile (또는 -F) | pyinstaller --onefile query_test.py |
exe 파일명 지정 | -n | pyinstaller --n Query_Test.exe query_test.py |
icon 지정 | --icon= | pyinstaller --icon=test.ico query_test.py |
cmd 콘솔화면 미출력 되도록 설정 | --noconsole (또는 -w) | pyinstaller --noconsole query_test.py |
'Development > 파이썬 [Python]' 카테고리의 다른 글
[Python] 파이썬 postgresql 접속 및 select 하기 (0) | 2020.12.30 |
---|---|
[Python] pyinstaller로 exe 실행파일 만들때 파일 버전정보 설정 (0) | 2020.12.30 |
[Python] 파이썬 데이터 타입 (문자열) (0) | 2020.12.28 |
[Python] 파이썬 데이터 타입 (숫자) (0) | 2020.12.24 |
[Python] 파이썬 장단점 (0) | 2020.12.24 |