44

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..

2
  • 3
    " I loaded Python 3.5.2" - how exactly? if you are running a manually installed python then installing system python packages with apt-get is unlikely to help Aug 23, 2016 at 17:07
  • 1
    I saw that your answer to your own question is to compile Tcl/Tk from source but I don't think that is needed unless you manually installed Python, i.e., without using the Apt package manager. Can you clarify if you had installed Python manually? Installing python3-tk and then running the Python code you provided works on my system Python 3.
    – edwinksl
    Aug 28, 2017 at 17:15

5 Answers 5

44

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/

5
  • 10
    Note -- for python3.6 in which python3.5 was my default, I had to use ...install python3.6-tk....
    – SteveJ
    Dec 7, 2017 at 16:50
  • +1. I would add for those reading this that tkinter does not seem to have a PyPI package so that using the Ubuntu package manager as suggested in this answer is the likely the next best option.
    – dpritch
    Jul 29, 2018 at 23:04
  • 1
    @dpritch There is a package available in the Universe repository called[ pypibrowser](packages.ubuntu.com/… which supplies the functionality I believe you are looking for. Cheers!
    – Elder Geek
    Aug 2, 2018 at 18:49
  • python3-tkinter for me on Fedora with dnf at least.
    – Pysis
    Oct 26, 2019 at 2:05
  • @Pysis I'm sorry for any confusion you may have experienced. This answer like this entire site is about Ubuntu. You might benefit from the tour. The first sentence makes it pretty clear, if not, further clarity is available here. Cheers!
    – Elder Geek
    Nov 12, 2019 at 23:38
34

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
6
  • 1
    Interesting. You might go so far as to explain which PPA you installed it from as as far as I can see python3.6-tk doesn't exist in the repositories at this moment.
    – Elder Geek
    Feb 19, 2018 at 13:55
  • 1
    I made a further edit in an attempt to make it more current.
    – Elder Geek
    Mar 1, 2018 at 18:55
  • 3
    FINALLY! This is the worked for me when sudo apt-get install python3-tk did not. Thanks
    – Peter
    Jun 13, 2018 at 12:39
  • 2
    For python 3.7 I had to use sudo apt-get install python3.7-tk to make it work
    – ilias
    Aug 21, 2019 at 5:49
  • That was it. The only solution that worked for me in twelve pages of Stackoverflow.
    – Avio
    Oct 25, 2019 at 13:01
1

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

0

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.

3
  • 2
    -1 This will not be relevant to most people as most will install via package manager rather than from source.
    – JakeCowton
    Jun 19, 2017 at 10:36
  • added introduction, so it won't confuse and still might help someone
    – mit
    Nov 20, 2018 at 8:23
  • want or won't ?
    – Chris P
    May 22, 2020 at 19:48
0

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
2
  • while this may answer the question, perhaps you could expand it to explain what the above command does and why it could fix the issue? Jul 18, 2019 at 18:47
  • ismailarilik What @JoshuaBesneatte is trying to say is: don't only give the requester the commands, but explain what the commands do and why he/she should apply it. As it stands, your answer is likely to be deleted because of lack of quality... :-(
    – Fabby
    Jul 18, 2019 at 22:09

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .