2014-04-01 14 views
6

Chciałem zacząć używać Tkinter z Pythona i mieć następujący kod:ImportError: No module o nazwie _imagingtk

#!/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() 

Ale gdy próbuję go uruchomić, to po prostu daje mi ten błąd:

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 

Zainstalowałem PIL z python-pip, a mój system operacyjny to Ubuntu 12.04, a mój python w wersji 2.7.3.

Odpowiedz

16

Musisz zainstalować moduł ImageTk.

w Debian, Ubuntu, można użyć następującego polecenia, aby go zainstalować:

sudo apt-get install python-imaging-tk 

UPDATE

Jeśli używasz najnowszej wersji Ubuntu (16.04+), nazwę pakietu zmienił .

  • python-pil.imagetk (Python 2.x)
  • python3-pil.imagetk (Python 3.x)
+1

Czy można go zainstalować przez pip? – dm76

+0

@ dm76, Przepraszam, nigdy tego nie próbowałem. Nie jestem pewny. – falsetru

+0

Mam już pakiet, wersja: 2.6.1-2, i nadal otrzymuję błąd. – appas

4

Jak zauważył falsetru, trzeba najpierw zainstalować moduł ImageTk: nie automatycznie pochodzą z Pyton. Aby to zrobić, wykonaj jedną z poniższych poleceń:

Jeśli używasz Pythona 2.x, należy użyć polecenia:

sudo apt-get install python-imaging-tk 

Jeśli używasz Pythona 3.x, użyj polecenia:

sudo apt-get install python3-pil.imagetk 
+0

Dzięki za cynk. Niestety, problem ten nie został rozwiązany nawet w przypadku nowych dystrybucji, takich jak Ubuntu 16.04.1 LTS. – MarkHu

0

Wystarczy dodać do odpowiedzi tutaj, na Ubuntu 16.04 nazwą pakietu jest nieco inny (nawet dla Pythona 2):

sudo apt-get install python-pil.imagetk

Powiązane problemy