소프트웨어/파이썬 (python)

파이썬 코드를 실행파일로 만들기

2023. 7. 25. 14:08
목차
  1. pyinstaller를 이용한 실행파일 만들기
  2. auto-py-to-exe를 이용한 실행파일 만들기
  3. cx_Freeze를 이용한 실행파일 만들기
  4. 기타 방법들
  5. 이슈 1 : 생성되는 실행파일의 사이즈가 너무 클 경우
  6. 이슈 2 : 실행이 안될 경우
  7. 참고자료
반응형

파이썬을 코드로 배포하려니 나도 힘들고 사용자도 힘든 것 같다.

이번 기회에 실행파일로 배포하는 방법을 정리해 봤다.

대부분의 경우, pyinstaller을 사용하면 될 것 같고 문제가 생기면 다른 툴을 찾아야 할 것 같다.

 

pyinstaller를 이용한 실행파일 만들기

 

링크에 자세한 내용이 있다. 간단하게 아래와 같다.

살펴보면 my_code.py가 참조하는 모든 코드들을 알아서 확인해서 패키징을 해준다.

--onefile 옵션을 제거하면 여러 파일이 생성되게 되는데 이러면 별도의 설치 제작 프로그램을 사용해야 한다.

(다만 실행속도는 향상된다고)

# 패키지 인스톨
$ pip install pyInstaller

# 실행파일로 만들기
$ pyinstaller --onefile my_code.py

# 아래 디렉토리에 실행파일이 생성된다.
$ ls dist/my_code

 

실행시 항상 콘솔창이 같이 뜨는데 이것은 아래 명령으로 제거할 수 있다.
pyinstaller --onefile --noconsole my_code.py
 

참고로 해당 명령어를 수행한 플랫폼에서 수행가능한 실행파일을 생성한다.
리눅스에서는 리눅스용, 윈도우즈에서는 윈도우즈 용으로 생성된다.

 

아래 괜찮은 유튜브 영상도 있다.

 

auto-py-to-exe를 이용한 실행파일 만들기

 

pyinstaller를 GUI로 옮겨놓은 솔루션이다. 패키지를 설치해보자.
# 패키지 설치
pip install auto-py-to-exe

# 패키지 실행
auto-py-to-exe

 

실행하면 아래 화면을 볼 수 있다. 화면을 보면 알다시피 pyinstaller를 랩핑하고 있다.

 

아래 유튜브 영상도 있다.

 

cx_Freeze를 이용한 실행파일 만들기

 

pyinstaller를 사용하기 힘든 상황에서 사용하는 방식이다. 

# 패키지 설치
pip install cx_Freeze

 

pyinstaller와는 다르게 별도의 setup파일을 만들어야 한다고 한다.

다음 링크에서 확인하자.

 

기타 방법들

 

왜 이렇게 많은 방법이 있는지 모르겠지만... 많다. 혹시 추후에 문제가 생길 경우, 정리해 보겠다.

  • py2exe : Windows only
  • py2app : Macs only
  • pynsist : 실행파일이 아닌 installer를 생성하는 방식. 배포까지 고려할 경우의 옵션인 것 같다.
  • Nuitka : python 코드를 패키징 하는 것이 아니고 컴파일을 통해 바이너리를 생성한다고 한다. 속도 측면에서 이득이 있을 것 같다. 다만 쉽게 되지는 않을 것으로 추정된다.
  • cython : Nuitka와 유사한 솔루션으로 보이고 이거는 C 기반이다.

 

이슈 1 : 생성되는 실행파일의 사이즈가 너무 클 경우

 

pyinstaller를 이용해서 실행파일을 만들었더니 189MB짜리 바이너리가 튀어나왔다.

놀라서 인터넷을 뒤져보니 패키지 만드는 방식이 그렇게 스마트하지 않다고 한다.

꼭 필요한 패키지만 설치한 virtual 환경에서(링크) 작업을 하니 20MB로 줄었다.

 

이슈 2 : 실행이 안될 경우

 

생성이 잘되어도 실행이 안될 수 있다.

이 경우는 정답은 없는 것 같고 구글링을 통해서 해결책을 찾아야 한다.

 

나 같은 경우는 아래 에러를 만났는데... 구글링 했더니 같은 이슈를 겪은 사람이 있었다.

 

$ my_code
... 중략 ...
ModuleNotFoundError: No module named 'PIL._tkinter_finder'
[878484] Failed to execute script 'titan-viewer' due to unhandled exception!

# 아래와 같이 생성하면 해결된다.
$ pyinstaller --onefile my_code.py --hidden-import='PIL._tkinter_finder'

 

참고자료

  • https://wikidocs.net/133214
  • https://seong6496.tistory.com/214
  • 관련 스택오버플로우
  • https://hyongdoc.tistory.com/405
반응형
저작자표시 비영리 변경금지 (새창열림)

'소프트웨어 > 파이썬 (python)' 카테고리의 다른 글

파이썬 모듈과 패키지 사용하기 (with VSCode)  (0) 2023.07.28
파이썬(Python) virtualenv 정리  (0) 2023.07.27
  1. pyinstaller를 이용한 실행파일 만들기
  2. auto-py-to-exe를 이용한 실행파일 만들기
  3. cx_Freeze를 이용한 실행파일 만들기
  4. 기타 방법들
  5. 이슈 1 : 생성되는 실행파일의 사이즈가 너무 클 경우
  6. 이슈 2 : 실행이 안될 경우
  7. 참고자료
'소프트웨어/파이썬 (python)' 카테고리의 다른 글
  • 파이썬 모듈과 패키지 사용하기 (with VSCode)
  • 파이썬(Python) virtualenv 정리
강에바
강에바
일상/메모
강에바의 이것저것일상/메모
강에바
강에바의 이것저것
강에바
전체
오늘
어제
  • 전체 (79)
    • 소프트웨어 (51)
      • 파이썬 (python) (3)
      • 데브옵스 (DevOps) (0)
      • 리눅스 (4)
      • IDE (2)
      • AI (1)
      • 툴 & 프로파일링 (3)
      • 안드로이드앱 (16)
      • 라즈베리파이2 (5)
      • 모바일웹게임 (6)
      • OTA(on-the-air) (8)
      • 기타 (3)
    • 취미 (17)
      • 여행 (4)
      • 맛집 (6)
      • 자전거 (1)
      • 블로그 (6)
    • 기타 (6)

블로그 메뉴

  • 홈
  • 미디어로그

공지사항

인기 글

태그

  • 안드로이드
  • pixi.js
  • gperftools
  • tcmalloc
  • ChatGPT
  • libsystemd
  • 편집기
  • ROS2
  • 프롬프트 엔지니어링
  • Prompt engineering
  • gprof
  • Yocto
  • systemctl
  • program_options
  • systemd
  • 라즈베리파이2
  • LLM
  • Large Language Model
  • ROS
  • call 그래프

최근 댓글

최근 글

hELLO · Designed By 정상우.
강에바
파이썬 코드를 실행파일로 만들기
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.