python

MacOS에서 tkinter 최신 버전 사용하기: Python 및 IDE 설정

Lucio1789 2024. 11. 18. 14:59

tkinter 8.6 at MacOS Cursor

MacOS에서 tkinter를 사용할 때 기본 버전(8.5)이 최신 OS에서 제대로 작동하지 않는 경우가 종종 발생합니다. 특히, Python의 tkinter 창이 열리지 않거나 깨지는 문제는 많은 개발자들에게 골칫거리죠. 이번 포스팅에서는 이러한 문제를 해결하고, 최신 tkinter 버전(8.6)을 설치하는 방법부터 IDE에서 올바른 Python 인터프리터를 설정하는 방법까지 단계별로 정리했습니다.


1. 문제의 원인

  • MacOS에 기본 설치된 Python은 tkinter 8.5를 포함하고 있으며, 이는 최신 MacOS와의 호환성 문제를 일으킵니다.
  • Homebrew로 Python과 tkinter를 새로 설치해도, IDE가 기본 Python 버전을 고정 사용하면 제대로 적용되지 않습니다.

2. 해결 방법: Python 및 Tcl/Tk 최신 버전 설치

Step 1. Homebrew로 Tcl/Tk 8.6 설치

Homebrew를 사용하면 최신 Tcl/Tk를 간편하게 설치할 수 있습니다.

  1. Homebrew 설치 (이미 설치된 경우 생략):
  2. /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
  3. 최신 Tcl/Tk 설치:
  4. brew install tcl-tk
  5. 설치된 경로 확인:출력 예시:이 경로는 이후 Python과 연동에 필요합니다.
  6. /usr/local/opt/tcl-tk
  7. brew info tcl-tk

Step 2. Homebrew로 Python 설치

MacOS의 기본 Python을 대체하기 위해 Homebrew를 사용하여 Python을 설치합니다.

  1. Python 설치:
  2. brew install python
  3. Python 버전 확인:출력 예시: Python 3.x.x
  4. python3 --version
  5. Python 설치 경로 확인:출력 예시: /usr/local/bin/python3
  6. which python3

Step 3. 환경 변수 설정

Python이 설치된 Tcl/Tk 8.6을 사용하도록 환경 변수를 설정해야 합니다.

  1. ~/.zshrc 또는 ~/.bash_profile 파일을 열어 아래 내용을 추가합니다:
  2. export PATH="/usr/local/opt/tcl-tk/bin:$PATH" export LDFLAGS="-L/usr/local/opt/tcl-tk/lib" export CPPFLAGS="-I/usr/local/opt/tcl-tk/include" export PKG_CONFIG_PATH="/usr/local/opt/tcl-tk/lib/pkgconfig"
  3. 변경 사항 적용:
  4. source ~/.zshrc # 또는 ~/.bash_profile

Step 4. Python과 tkinter 연동 확인

Python이 제대로 Tcl/Tk 8.6과 연동되었는지 확인합니다.

  1. Python 셸에서 tkinter 버전 확인:출력값이 8.6 이상이어야 합니다.
  2. import tkinter print(tkinter.TkVersion)
  3. tkinter GUI 테스트:
  4. import tkinter as tk root = tk.Tk() root.title("tkinter Test") label = tk.Label(root, text="Hello, tkinter!") label.pack() root.mainloop()

3. IDE에서 Python 인터프리터 설정

Python이 제대로 설치되어도 IDE에서 기본 인터프리터가 MacOS의 시스템 Python으로 고정되어 있으면 문제가 해결되지 않습니다. 아래는 각 IDE에서 인터프리터를 설정하는 방법입니다.


Visual Studio Code (VSC)

  1. Python 확장 설치:
    • VSC 마켓플레이스에서 "Python" 확장을 설치합니다.
  2. Python 인터프리터 선택:
    • VSC 하단 상태 표시줄에서 Python 인터프리터를 클릭하거나, Cmd+Shift+PPython: Select Interpreter를 검색합니다.
    • Homebrew로 설치된 Python 경로(/usr/local/bin/python3)를 선택합니다.
  3. 인터프리터를 고정하려면:
    • 프로젝트 폴더의 .vscode/settings.json 파일에 아래를 추가합니다:
      {
          "python.pythonPath": "/usr/local/bin/python3"
      }
  4. Python 버전 확인:
    • 터미널에서 python3 --version을 실행하여 올바른 버전인지 확인합니다.

Cursor IDE

  1. Interpreter 설정:
    • Cursor IDE의 Settings → Interpreter 메뉴로 이동합니다.
    • Python 경로(/usr/local/bin/python3)를 입력합니다.
  2. Python 적용 확인:
    • IDE 터미널에서 Python 버전을 실행해 확인합니다:
      python3 --version

4. 터미널에서도 기본 Python 변경

터미널에서도 기본 Python 경로가 MacOS의 기본 Python으로 고정되는 문제를 방지하려면 alias를 설정합니다.

  1. Python 경로 설정:
    ~/.zshrc 또는 ~/.bash_profile에 아래를 추가합니다:
  2. alias python="/usr/local/bin/python3" alias python3="/usr/local/bin/python3"
  3. 설정 적용:
  4. source ~/.zshrc # 또는 ~/.bash_profile
  5. 기본 Python 확인:
  6. python --version python3 --version

5. tkinter 문제 해결 후 실행 예제

최신 tkinter가 제대로 작동하는지 간단한 테스트 프로그램을 실행해 봅니다.

import tkinter as tk

root = tk.Tk()
root.title("tkinter Test Window")
root.geometry("300x200")

label = tk.Label(root, text="tkinter 8.6 Test Successful!", font=("Arial", 14))
label.pack(pady=20)

button = tk.Button(root, text="Close", command=root.destroy)
button.pack(pady=10)

root.mainloop()


6. 요약 및 결론

  • MacOS에서 tkinter 문제는 기본 Python과 Tcl/Tk의 버전 불일치에서 발생합니다.
  • Homebrew로 최신 Python과 Tcl/Tk를 설치하고 환경 변수를 설정하면 문제를 해결할 수 있습니다.
  • VSC 및 Cursor와 같은 IDE에서도 Python 인터프리터 경로를 명확히 설정해야 합니다.