Error Log

[Error Log]Python: No module named _tkinter에 관한 이슈

ooeunz 2019. 10. 11. 20:32
반응형

Issue 설명

_tkinter는 Python의 GUI 모듈이다. 그런데 간혹 Mac이나 Linux에서 모듈을 설치했음에도 tkiner를 찾을 수 없다는 에러가 뜰 때가 있다. 에러명은 다음과 같다.

 

error: ImportError: No module named _tkinter

 

 

backend 변경해보기

mac에서의 경우 기본 backend가 TkAgg로 설정되어있지 않아서 에러가 난다. 그럴 경우에 스크립트상에 다음 코드를 추가해준다.

import matplotlib
matplotlib.use(“TkAgg”)

매번 코드를 추가하기 귀찮으므로 bash상에 설정을 바꾸어주는 방법도 있다.

echo "backend: TkAgg" >> ~/.matplotlib/matplotlibrc

여기서 말하는 backend란?

python에서 graph 등을 그릴 때 실행을 지원하는 환경이다. 사용자에 따라 콘솔에 그리고나 툴에 그리거나 등등 여러 가지 환경을 지원한다.

 

tkinter 설치

tkinter는 기본적으로 matplotlib를 설치하면 같이 설치가되나, 간혹 설치가 되지 않은 경우 다음과 같은 코드로 명시적으로 install 해준다.

 

  • Linux
sudo apt-get install python3-tk

 

  • Mac
$ brew install tcl-tk

 

하지만 주의할 점이 있는데, pyenv가상환경 내에서 matplotlib를 사용할 경우, 위의 두가지를 모두 하였음에도 tkinter가 실행되지 않는 이슈가 있었다. 이런 경우 내부적으로 path가 꼬여있어서 그런데, 이런 경우 반드시 tkinter를 먼저 설치한 이후에 pyenv 파이썬 환경을 설치해야 한다. (필자는 이 문제로 거의 하루를 보냈다ㅠㅠ)

반응형