우분투 tkinter 설치

[Linux] Python 3.12 가상환경에서 Tkinter 인식 불가 문제

시스템에 python3.8, 3.10, 3.12 등 여러 버전이 공존하는 환경이다. 주로 3.10을 메인으로 사용하다가, 특정 프로젝트 요구사항 때문에 Python 3.12로 가상환경(.venv)을 만들어 진행했다.

그런데 matplotlib이나 GUI 관련 코드를 실행하니 ModuleNotFoundError: No module named 'tkinter' 에러가 발생했다.

1. 일반적인 패키지 설치 시도 (실패)

가장 먼저 떠오른 일반적인 패키지들을 설치해 봤다.

Bash

# 시도 1
sudo apt install python-tk

# 시도 2
sudo apt install python3-tk

설치는 완료되었다고 나오거나 “이미 최신 버전입니다"라고 뜨지만, 여전히 3.12 가상환경에서는 Tkinter를 인식하지 못했다.

원인: 위 명령어(python3-tk)는 리눅스 시스템의 기본(Default) 파이썬 버전(예: Ubuntu 22.04라면 3.10)에 맞는 라이브러리를 설치하기 때문이다. 내가 별도로 설치한 3.12에는 연결되지 않는다.

2. 버전 맞춤 패키지 설치 (해결)

해결 방법은 간단하다. 내가 사용하는 파이썬 버전 번호를 명시해서 패키지를 설치해야 한다.

Bash

# Python 3.12용 tk 패키지 설치
sudo apt install python3.12-tk

설치 후 다시 파이썬 코드를 실행해 보니 정상적으로 GUI 창이 뜨고 에러가 사라졌다.

결론

리눅스에서 deadsnakes PPA 등을 통해 여러 파이썬 버전을 관리한다면, venvdev, tk 같은 모듈도 반드시 **해당 버전명(python3.x-tk)**을 붙여서 설치해야 한다.