파이썬(Python) Pyinstaller 로 exe 실행 파일 만드는 방법

파이썬 Python

파이썬(Python) Pyinstaller exe 실행 파일 만드는 방법

 

환경: PyCharm, Python 3.3

 

윈도우에서 실행할 GUI 화면을 만든다면 PyQt5 라이브러리를 많이 사용합니다. 완성된 프로그램을 배포하거나 실행하고자 할 때 파이썬이 설치되어 있지 않은 곳이면 어떻게 해야 할까요? 윈도우라면 exe 프로그램을 만들어서 단독 실행이 가능하도록 만들어야 합니다. python 파일을 exe 실행파일로 변환할 수 있는 대표적인 라이브러리가 pyinstaller 입니다.

 

먼저 pip 를 이용해서 pyinstaller 을 설치합니다. 명령어는 다음과 같습니다. 2018419일 기준으로 최신버전은 3.3.1 입니다.

 

> pip install pyinstaller

Collecting pyinstaller

  Downloading

….

Successfully installed altgraph-0.15 future-0.16.0 macholib-1.9 pefile-2017.11.5 pyinstaller-3.3.1 pypiwin32-223 pywin32-223

You are using pip version 9.0.1, however version 10.0.0 is available.

You should consider upgrading via the 'python -m pip install --upgrade pip' command.

 

> pyinstaller --version

3.3.1

 

PyQt5 로 만든 python 소스 파일을 exe 로 변환해 보겠습니다. 명령어는 간단합니다. pyinstaller 뒤에 파라미터로 파일을 넘깁니다.

 

> pyinstaller pyqt5_default.py

103 INFO: PyInstaller: 3.3.1

104 INFO: Python: 3.5.1

……

D:\Project\Python\workspace\chrower\build\pyqt5_default\pyqt5_default.exe

8386 INFO: Building EXE from out00-EXE.toc completed successfully.

9755 INFO: Building COLLECT out00-COLLECT.toc completed successfully.

 

파일은 build 폴더에 만들어 집니다. exe 파일은 콘솔에서 실행해야 합니다. 일반적인 exe 프로그램처럼 더블 클릭하면 화면에서 사라집니다.

파이썬(Python) Pyinstaller 로 exe 실행 파일 만드는 방법

 

exe 프로그램을 더블 클릭해서 실행하고 싶다면 콘솔 창이 출력되지 않도록 옵션을 조절해야 합니다. 명령어는 다음과 같습니다.

 

--onefile : exe 파일 하나만 생성합니다.

--windowed : 콘솔 창을 출력하지 않습니다.

 

> pyinstaller --windowed --onefile  pyqt5_default.py

 

좀더 상세한 옵션은 다음과 같습니다.

옵션

설명

--onefile

실행파일 하나만 생성

--onedir

다렉토리 하나만 생성

--tk

TCL/TK 인터페이스 포함

--windowed, --noconsole

실행할 때 도스창을 열지 않음

--nowindowed, --console

도스창을 사용함

--strip

exe 라이브러리들을 Strip 로 실행

--upx

UPX 를 설치한 경우 실행파일 압축

--out

-o DIR 로 해당 경로에 파일 생성

--paths

-p DIR 로 해당 경로의 path 사용

--icon

실행파일 아이콘 선택

 

--windowed --onefile 두 옵션을 적용한 결과는 다음과 같습니다. --onefile 을 적용한 결과 하나의 실행 파일만 생성되었습니다

파이썬(Python) Pyinstaller 로 exe 실행 파일 만드는 방법

 

다음은 exe 파일을 더블 클릭해 보세요. 그림처럼 콘솔이 실행되지 않고 바로 화면이 사라지지 않습니다. --windowed 옵션을 적용한 결과 입니다

파이썬(Python) Pyinstaller 로 exe 실행 파일 만드는 방법

Posted by 녹두장군