Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

PyInstaller로 Tkinter 앱을 EXE로 빌드할 때 콘솔 창 숨기는 방법

Tkinter로 작성한 파이썬 애플리케이션을 Windows 실행 파일(.exe)로 변환할 때는 일반적으로 PyInstaller 패키지를 사용합니다. PyInstaller는 스크립트와 필요한 모든 의존성을 하나의 실행 파일로 묶어 주는 도구입니다.

그런데 이렇게 만든 .exe 파일을 실행해 보면, 애플리케이션 창이 열리기 전에 검은색 명령 프롬프트(콘솔) 창이 먼저 나타나는 경우가 있습니다. GUI 프로그램이라면 이 콘솔 창은 불필요하기 때문에 숨기고 싶어집니다.

해결 방법은 아주 간단합니다. PyInstaller 명령에 --windowed 옵션을 추가하면 됩니다.

예제

다음은 버튼을 클릭하면 "Hello World!" 라벨이 화면에 표시되는 간단한 Tkinter 프로그램입니다. 이 프로그램을 PyInstaller로 .exe 파일로 변환해 보겠습니다.

app.py

# 필요한 라이브러리 임포트
from tkinter import *

# Tkinter 프레임 인스턴스 생성
win = Tk()

# 창 크기 설정
win.geometry("700x350")

# 창의 기본 배경색 설정
win.config(bg='#aad5df')

def display_text():
    Label(win, text="Hello World!", background='white', foreground='purple1').pack()

Button(win, text="Click Me", background="white", foreground="black", font=('Helvetica 13 bold'), command=display_text).pack(pady=50)
win.mainloop()

app.py가 저장된 폴더에서 터미널(명령 프롬프트)을 연 뒤 아래 명령어를 실행합니다.

> pyinstaller --onefile app.py --windowed

빌드가 완료되면 dist 폴더 안에 app.exe 파일이 생성됩니다.

주요 옵션 정리

  • --onefile: 스크립트와 모든 의존성을 하나의 실행 파일로 묶어 줍니다.
  • --windowed(-w, --noconsole): 실행 시 콘솔 창이 나타나지 않도록 합니다. macOS에서는 --noconsole 옵션을 사용하면 됩니다.

실행 결과

dist 폴더에 있는 app.exe 파일을 실행하면 콘솔 창 없이 곧바로 애플리케이션 창이 열리고, "Click Me" 버튼이 나타납니다.

PyInstaller로 Tkinter 앱을 EXE로 빌드할 때 콘솔 창 숨기는 방법

버튼을 클릭하면 흰색 배경에 보라색 글씨로 된 "Hello World!" 라벨이 창에 추가됩니다.

--windowed 옵션 덕분에 .exe 파일이 애플리케이션 창을 열기 전에 명령 프롬프트 창을 표시하지 않는다는 점을 확인할 수 있습니다.