PYINSTALLER로 파이썬 실행파일 만들기

파이썬으로 만든 파일은 py라는 확장자를 가진 스크립트 파일이다. 이 파일을 실행시킬 때는 반드시 시스템에 해당 버전에 맞는 파이썬이 설치되어 있어야 한다. 따라서 배포를 목적으로 파이썬으로 프로그램을 만들기 위해서는 py2exe와 같은 유틸리티가 필요하다. py2exe는 파이썬2 문법으로 만든 파이썬 파일을 실행파일(exe)로 만들어준다. 파이썬3 문법으로 만들었다면 py2exe를 사용할 수 없다. 대신 pyinstaller를 사용하면 된다.(윈도우즈 환경에만 해당)


기본적인 사항


py확장자를 가진 스크립트 파일의 용량을 살펴보면 1MB를 넘는 파일은 드물다. 하지만 exe파일로 바꿔놓고 나면 아주 작은 녀석의 경우도 10MB정도 될 것이다. 이것은 파이썬 파일을 실행파일(exe)로 만들 때 파이썬이 설치되지 않은 환경에서도 실행되도록 하기 위한 기본적인 환경(인터프리터, 라이브러리)들을 포함시키기 때문이다.


pyinstaller 설치


윈도우 커맨드 창에서 pip으로 pyinstaller를 설치하면 된다.

C:\>pip install pyinstaller


pyinstaller 사용법


사용법도 간단하다. 실행파일로 만들 파일이 있는 디렉토리에서 다음 예와 같은 명령을 내려준다.

C:\myfolder>pyinstaller example.py


추가적인 옵션


간단한 파일의 경우 위와 같이 사용할 수 있겠지만 이미지 폴더와 같은 다른 리소스 파일들이 같이 묶여있는 경우는 지정을 해줘야한다. 그 밖에도 라이블러리 까지 묶어서 하나의 실행파일로 만들거나 실행파일과 라이브러리 파일들을 따로 분리해서 만들거나 하는 옵션을 정해줄 수 있다. 

여기 참고

예를들어 GUI프로그램이라도 기본적으로 console창이 뜬다. 따라서 콘솔 프로그램이 아니라면 콘솔창이 없애는 옵션을 정해주자.

C:\myfolder>pyinstaller --noconsole --onefile example.py

여기에 --onefile옵션은 하나의 실행파일로 만들라는 뜻이다.

사실 나같은 경우는 파이썬을 가지고 프로토타입용으로 만드는 용도로 사용하므로 위 옵션만 알고 있어도 큰 문제는 없다.

반응형
이 댓글을 비밀 댓글로
    • 부산갈매기
    • 2017.05.22 17:40
    개발환경에서 실행할 때와, exe 파일을 만들어서 실행할 때
    실행시간 차이가 많이 납니다.
    실행 시간을 줄일 수 있는 방법은 없는지요 ?
    • 혹시 --onefile 옵션을 주셨다면 이 옵션을 빼고 exe파일을 만들어보세요.
      • 부산갈매기
      • 2017.06.30 15:06
      실행속도가 거의 5배 정도 차이가 납니다.
      도움 감사합니다.
    • 고리랄
    • 2018.01.12 03:41
    튜플 인텍스 범위를 벗어났다는 에러가 뜨는데 어떻게 해야 해결할 수 있을까요? 계속 에러가 뜨네요 ㅠㅠ
    • 만드신 프로그램의 에러 같네요. 자세한 프로그램을 봐야 알 것 같구요.
    • 익명
    • 2019.01.07 18:19
    비밀댓글입니다
    • kimwoojin0952
    • 2019.01.21 19:33
    관리자의 승인을 기다리고 있는 댓글입니다
    • 남산부장들
    • 2020.06.08 17:16
    Pyinstaller로 만든 exe 파일을 다른 pc에서 실행시키고자 할 때,
    파이썬이 안깔려 있어도 실행가능한가요?