Tkinter 애플리케이션을 실행 파일로 배포해야 하는 이유
Tkinter는 파이썬(Python) 라이브러리 기반의 크로스 플랫폼 tk GUI 툴킷으로, GUI 기반 애플리케이션을 손쉽게 만들고 개발할 수 있게 해줍니다. Tkinter로 작성한 애플리케이션은 하나의 실행 파일로 묶어(번들링) 배포할 수 있으며, 이렇게 하면 사용자가 파이썬 인터프리터나 IDLE을 설치하지 않아도 프로그램을 바로 실행할 수 있습니다.
특히 소스 코드를 공개하지 않으면서 다른 사람들과 프로그램을 공유하고 싶을 때, 애플리케이션을 실행 파일로 패키징하는 작업이 필수적입니다.
파이썬은 실행 중인 애플리케이션을 하나의 독립 실행형(포터블) 파일로 변환할 수 있는 다양한 모듈과 확장 기능을 제공합니다. 운영체제마다 실행 환경이 다르기 때문에, Windows, macOS, Linux 등 각 플랫폼에 맞는 패키징 도구를 선택해야 합니다.
PyInstaller 설치하기
여기서는 파이썬의 PyInstaller 패키지를 사용해 애플리케이션을 실행 파일로 변환합니다. PyInstaller는 Windows, macOS, Linux를 모두 지원하며 가장 널리 쓰이는 파이썬 패키징 도구 중 하나입니다. 설치하려면 아래 명령어를 입력하세요.
pip install pyinstaller
Tkinter 스크립트를 실행 파일로 변환하는 방법
Windows 운영체제에서 pip install pyinstaller 명령어로 PyInstaller를 설치한 후, 아래 명령어를 입력하고 Enter 키를 누릅니다.
pyinstaller --onefile -w filename
참고: --onefile 옵션은 모든 의존성을 하나의 실행 파일로 묶어 주고, -w(또는 --noconsole) 옵션은 프로그램 실행 시 불필요한 콘솔 창이 함께 뜨지 않도록 해줍니다.
명령어 실행 후 스크립트 파일이 있는 위치를 확인하면, 실행 파일이 담긴 dist 폴더가 새로 생성된 것을 볼 수 있습니다.
생성된 실행 파일을 실행하면 Tkinter 애플리케이션 창이 나타납니다.
예제: 이름을 입력받아 인사하는 Tkinter 앱
이 예제에서는 사용자에게 이름을 입력받고, 입력된 이름으로 인사 메시지를 보여주는 간단한 애플리케이션을 만들어 보겠습니다.
# 필요한 라이브러리 임포트
from tkinter import *
from tkinter import ttk
# tkinter 프레임 인스턴스 생성
win = Tk()
# tkinter 프레임 크기 설정
win.geometry("750x250")
# 메시지를 표시하는 함수 정의
def myclick():
message = "Hello " + entry.get()
label = Label(frame, text=message, font=('Times New Roman', 14, 'italic'))
entry.delete(0, 'end')
label.pack(pady=30)
# 프레임 생성
frame = LabelFrame(win, width=400, height=180, bd=5)
frame.pack()
# 프레임이 내부 위젯 크기에 맞춰 줄어들지 않도록 설정
frame.pack_propagate(False)
# 프레임 안에 Entry(입력) 위젯 생성
entry = ttk.Entry(frame, width=40)
entry.insert(INSERT, "Enter Your Name")
entry.pack()
# 클릭 버튼 생성
ttk.Button(win, text="Click", command=myclick).pack(pady=20)
win.mainloop()실행 결과 확인하기
이제 아래 명령어를 실행해 작성한 코드를 실행 파일로 변환합니다.
pyinstaller --onefile -w filename
명령어가 정상적으로 완료되면 프로젝트 폴더 안의 dist 폴더에 실행 파일이 자동으로 생성됩니다.
생성된 exe 파일을 실행하면 Entry(입력) 위젯이 있는 창이 열립니다. 이름을 입력한 뒤 "Click" 버튼을 누르면 화면에 인사 메시지가 표시됩니다.
