[Solved] ImportError: No named ‘_tkinter’, please install the python3-tk package

I am new to Ubuntu and Linux in general.

I created a dual boot OS on my laptop (Windows 10 and Ubuntu).

  • Typing: sudo apt-get install python3-tk (or even python-tk) didn’t work.
  • Trying to install the python3-dev or python-devel (no luck).
  • Downloading Tcl and Tk to manually install.

In Windows 10 Bash Subsystem the Tk and Tcl are already included, so I thought Ubuntu already had it. But, I want to use my Ubuntu desktop to develop Python GUI apps.

So, how can I install the Tcl/Tk to be use in Python 3.5 for GUI development?

I loaded Python 3.5.2 fine but need the GUI modules enabled.

The code to test that Tk is working is:

  1. Type python3
  2. Type:

    import tkinter   
    tkinter._test()
    
  3. Result: a GUI pop-up displaying This is a Tcl/Tk version..

Solution #1:

sudo apt-get install python3-tk Installs tkinter for Python3.x.x

Sources:

https://stackoverflow.com/questions/6084416/tkinter-module-not-found-on-ubuntu
https://pythonprogramming.net/python-3-tkinter-basics-tutorial/

Respondent: Elder Geek

Solution #2:

For a python 3.6 virtual environment with Python 3.5 as the “system” python (Ubuntu) , I had to install tk 3.6 to match;

sudo apt-get install python3.6-tk

My default python in ubuntu was 3.5, so when using a venv for 3.6, I would get an import error. Drove me crazy for a while.

[Edit: As this question ages]

In general, it seems if one is using a virtual environment with a python of a different version than that of ones base machine, one must install tk for the version of python used in the virtual environment.

sudo apt install python3.x-tk

Where 3.x would match the version of the virtual environment.

[Edit]

It may be necessary to add the repository for tk. In my experience, it was the same repository from which I pulled python3.6, but that may change with time;

sudo add-apt-repository ppa:deadsnakes/ppa
Respondent: SteveJ

Solution #3:

In my case, I was getting the same error as “ImportError: No module named ‘_tkinter'” for python3.5 in-spite of doing the following things:
– Installing python3-tk and tkinter-dev
– Tkinter directory being available in /usr/lib/python3.5.

The observed error was from the following file:

File “/usr/local/lib/python3.5/tkinter/init.py”, line 35, in
import _tkinter # If this fails your Python may not be configured for Tk

However, when I simply ran the python from /usr/bin like /usr/bin/python3.5 from terminal, it worked for me!

In short, just ensure the python version being run from terminal has the tkinter installed and configured 🙂

I have Ubuntu16.04 installed on my system which comes with default python2.7 and python3.5

Respondent: phoenix007

Solution #4:

This might be interesting when installing from source (which most python users won’t):

After installing tcl and tk.

Go back to your version of Python, do make. And, if multiple version of python exist, do a make altinstall.

  1. Open Python3.5
  2. type:

    import tkinter
    tkinter._test()
    
  3. results OK – pop GUI opened and working as expected.

Respondent: MaximoTrinidad

Solution #5:

Installing just library files may not work since you want to use library itself not develop it.

This worked for me:

$ sudo apt install tk8.6-dev
Respondent: ismailarilik

The answers/resolutions are collected from stackoverflow, are licensed under cc by-sa 2.5 , cc by-sa 3.0 and cc by-sa 4.0 .

Leave a Reply

Your email address will not be published.