ModuleNotFoundError: No module named 'tkinter'

._.·2024년 10월 4일
0

Issue

목록 보기
1/1
post-thumbnail

개발 환경은 다음과 같습니다.

  • WSL
  • Ubuntu 20.04
  • venv Python Version: 3.10.15

Issue

matplotlib.pyplot을 활용해서 이미지 데이터를 출력해서 직접 검토하고자 하였습니다. 코드는 다음과 같습니다.

figure = plt.figure(figsize = (8, 8))
cols, rows = 3, 3
for i in range(1, cols * rows + 1):
    sample_idx = torch.randint(len(training_data), size = (1, )).item()
    img, label = training_data[sample_idx]
    figure.add_subplot(rows, cols, i)
    plt.title(labels_map[label])
    plt.axis('off')
    plt.imshow(img.squeeze(), cmap = 'gray')
plt.show()

Error Message

Traceback (most recent call last):
  File "/home/ih9511/pytorch/dataloader.py", line 19, in <module>
    matplotlib.use('TkAgg')
  File "/home/ih9511/pytorch/.venv/lib/python3.10/site-packages/matplotlib/__init__.py", line 1255, in use
    plt.switch_backend(name)
  File "/home/ih9511/pytorch/.venv/lib/python3.10/site-packages/matplotlib/pyplot.py", line 415, in switch_backend
    module = backend_registry.load_backend_module(newbackend)
  File "/home/ih9511/pytorch/.venv/lib/python3.10/site-packages/matplotlib/backends/registry.py", line 323, in load_backend_module
    return importlib.import_module(module_name)
  File "/usr/lib/python3.10/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1050, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1027, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 688, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 883, in exec_module
  File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
  File "/home/ih9511/pytorch/.venv/lib/python3.10/site-packages/matplotlib/backends/backend_tkagg.py", line 1, in <module>
    from . import _backend_tk
  File "/home/ih9511/pytorch/.venv/lib/python3.10/site-packages/matplotlib/backends/_backend_tk.py", line 9, in <module>
    import tkinter as tk
ModuleNotFoundError: No module named 'tkinter'

How to Solve

WSL Ubuntu 20.04의 경우, 기본적으로 GUI가 제공되지 않기 때문에 따로 모듈을 설치해주어야 합니다.

sudo apt install python3.10-tk
sudo apt install PyQt6

이후, matplotlib에서 설치한 패키지들을 활용하도록 backend 설정을 변경해줍니다.

matplotlib.use("TkAgg")

이후, 정상적으로 이미지가 출력되는 것을 확인할 수 있습니다.

profile
AI와 사람 사이 그 어딘가

0개의 댓글

관련 채용 정보