Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

ImportError: No module named _imagingtk

I wanted to start using Tkinter with python and have following code:

#!/usr/bin/python

from Tkinter import *
from PIL import ImageTk, Image

top = Tk()
dir(top)
top.title("Erstes Frame")

erstesFrame = Frame(top, height=250, width=250)
erstesFrame.pack_propagate(0)
erstesFrame.pack()

img = ImageTk.PhotoImage(Image.open("mario.gif"))

erstesBild = Label(erstesFrame, image = img)

erstesBild.pack()

top.mainloop()

But when I try to execute it, it just gives me this error:

Traceback (most recent call last):
  File "ToDoAPP.py", line 14, in <module>
    img = ImageTk.PhotoImage(Image.open("mario.gif"))
  File "/usr/local/lib/python2.7/dist-packages/PIL/ImageTk.py", line 116, in __init__
    self.paste(image)
  File "/usr/local/lib/python2.7/dist-packages/PIL/ImageTk.py", line 181, in paste
    import _imagingtk
ImportError: No module named _imagingtk

I installed PIL with python-pip and my OS is ubuntu 12.04 and my python version is 2.7.3

like image 803
BoJack Horseman Avatar asked Apr 01 '14 14:04

BoJack Horseman


2 Answers

You need to install ImageTk module.

In debian, ubuntu, you can use following command to install it:

sudo apt-get install python-imaging-tk

UPDATE

If you're using recent version of ubuntu (16.04+), the package name changed.

  • python-pil.imagetk (Python 2.x)
  • python3-pil.imagetk (Python 3.x)
like image 163
falsetru Avatar answered Oct 06 '22 00:10

falsetru


As noted by falsetru, you need to install the ImageTk module first: it doesn't automatically come with Python. To do this, run one of the commands below:

If you're using Python 2.x, use this command:

sudo apt-get install python-imaging-tk

If you're using Python 3.x, use this command:

sudo apt-get install python3-pil.imagetk
like image 33
SarcasticSully Avatar answered Oct 06 '22 00:10

SarcasticSully