상세 컨텐츠

본문 제목

파이썬 pyinstaller로 윈도우 실행파일 exe 만들기

코딩

by 땡감 2022. 11. 30. 15:57

본문

반응형

파이썬으로 작성한 프로그램은 기본 확장자가 .py이기 때문에

파이썬이 설치가 되어있어야만 실행 가능하다.

따라서 내가 작성한 파이썬 프로그램을 다른 누군가가 사용하기 위해서는 

그 누군가도 반드시 파이썬을 설치해야 한다.

하지만 파이썬 설치조차 어려운 사람들을 어떻게 하나???

 

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

그런 사람들을 위해서 파이썬에서는 pyinstaller라는 모듈을 제공한다.

pyinstaller 모듈을 사용하면 .py로 작성된 프로그램도 .exe 파일로 변환해준다.

더욱이 파이썬을 설치하지 않더라도 해당 프로그램을 실행 할 수 있다.

 

pyinstaller 모듈은 기본 설치되는 모듈이 아니기 때문에 pip를 통해 설치해야 한다.

간단하게 아래 명령어를 통해 설치할 수 있다.

pip install pyinstaller

Successfully installed pyinstaller 메시지가 확인되면 정상적으로 설치가 된것이다.

 

pyinstaller 모듈 설치가 끝났으니 실제로 exe 실행파일을 만들어보자.

작성자의 경우 이전에 작성했던 간단한 프로그램을 대상으로 테스트해봤다.

pyinstaller 소스명으로 exe 파일을 만들 수 있으며

50라인이 채 되지 않은 간단한 프로그램임에도 불구하고 2분여간 수행되었다.

pyinstaller를 사용하는 방법은 아래와 같으며 보다 자세한 옵션은 아래 링크를 참조하자.

pyinstaller [옵션] 파이썬파일

###대표적인 옵션
--onefile : 단 하나의 실행파일로 생성
--windowed : 실행파일 실행 시, 콘솔창이 실행되지 않음
--icon=아이콘 경로 : 해당 경로의 이미지를 아이콘으로 설정

옵션 확인 URL : https://pyinstaller.org/en/stable/usage.html

 

Using PyInstaller — PyInstaller 5.6.2 documentation

Making GNU/Linux Apps Forward-Compatible Under GNU/Linux, PyInstaller does not bundle libc (the C standard library, usually glibc, the Gnu version) with the app. Instead, the app expects to link dynamically to the libc from the local OS where it runs. The

pyinstaller.org

 

pyinstaller가 정상적으로 수행이 되었다면

python이 설치된 곳에 build 디렉토리와 dest 디렉토리가 생성된다.

build 디렉토리는 exe 파일을 만들기 위해 참조했던 관련 내용들이 생성되는 곳이고

dest 디렉토리는 exe 실행파일이 생성되는 곳이다.

이렇게 생성된 exe 파일은 파이썬이 설치되어 있지 않더라도 실행 가능하다.

 

다만 파이썬이 없는곳에서도 실행이 가능하도록 만든 프로그램이다 보니

원본 소스에 비해 과할정도로 크기가 뻥튀기된다.

작성자의 경우 2.4K 파일이 25M 가량이 되어버렸다.

파이썬 없이도 실행하기 위해 설치되어 있는 모든 패키지를 포함하였기 때문이다.

 

추가로 원본 소스에서는 전혀 참조가 필요없는 패키지들도

pyinstaller를 통해 exe 파일을 만들경우 추가해줘야 하는 경우도 있다.

예를 들어 작성자의 경우 원본 소스상에는 babel 모듈을 전혀 사용하지 않음에도 불구하고

exe 파일 실행시 babel 모듈을 찾지 못해 강제로 원본 소스상에 import를 시켜 해결했다.

그럼 끝.

반응형

관련글 더보기

댓글 영역