2021-01-22

파이썬 import tkinter 에러 ModuleNotFoundError: No module named '_tkinter'


1       원인

이번엔 사용 환경이 독특하다. 시스템 기본 파이썬이 존재하지만, 별도로 파이썬 소스 코드로부터 컴파일해서 파이썬 바이너리 파일을 생성한 경우에 import tkinter 시 에러가 발생한다. tkinter를 사용하지 않더라도 Matplotlib이나 OpenCV 등 많은 라이브러리에서 tkinter를 임포트하기 때문에, 해당 라이브러리를 사용하다가도 같은 문제를 만나게 될 수 있다.

시스템 기본 파이썬은 /usr/bin/python3 에 위치하고 있으며, 컴파일한 파이썬은 임의의 디렉토리(예를 들어서 ~/p/Python-3.9.1/ )에 위치하고 있다. 물론 컴파일 후에 sudo make install을 통해 /usr/local/bin/python3 으로 복사될 것이다. 그러므로 make install을 하기 전에 컴파일한 디렉토리에서 ./python 으로 실행을 시켜보고, 파이썬 인터프리터가 나타나면 import tkinter를 해서 제대로 컴파일이 되었는지를 확인하면 된다.

시스템 기본 파이썬을 실행시킨 후 인터프리터에 import tkinter를 입력하면 에러 없이 정상적으로 실행되지만, 컴파일한 파이썬에서는 제목과 같은 ModuleNotFoundError가 발생한다. 이는 컴파일 과정에서 tkinter가 포함되지 않은 것 같다.

 

2       사용 환경

와 동일한 환경이다. 해당 글을 참조하는 것으로 대체하였다.

 

3       해결 방법

(for deb)
sudo apt-get install python-tk python3-tk tk-dev

(for arch/manjaro)
sudo pacman -S tk

파이썬을 소스 코드로부터 컴파일 하기 전에 필요한 패키지가 있다. python-tkpython3-tk는 많이 언급이 되었는데 tk-dev는 언급이 별로 없었다. 특히 마지막 패키지를 설치해주어야 컴파일 시 파이썬이 tk를 정상적으로 포함하게 된다.

 

댓글 1개:

  1. 감사합니다 ㅠㅠ 저거 입력하니까 바로 되네요 완전 고맙습니다

    답글삭제