2015-09-20 59 views
3

我想開始使用枕頭,但我跑輸入名稱「_imagingtk」了一些問題:
起初,我以爲我可以簡單地pip install pillow,所以我激活了我的virtualenv和正是做到了。當它沒有奏效時,我意識到我需要爲枕頭安裝一些依賴關係(installation)。我在Ubuntu 14.04上。但即使在我安裝這些依賴並重新安裝枕頭後,該規範也不起作用。直到我在我的主要Python3.4安裝中的virtualenv和pip安裝的枕頭之外嘗試了它之後,我的代碼突然出現了。的Python導入錯誤:無法在virtualenv中

import tkinter as tk 
from PIL import Image, ImageTk 


def show(img, text=""): 
    root = tk.Tk() 
    root.title(text) 
    photo = ImageTk.PhotoImage(img) 
    image_lbl = tk.Label(root, image=photo) 
    image_lbl.image = photo 
    image_lbl.pack() 
    root.mainloop() 


show(Image.open("test.jpg"), text="Test") 

錯誤:

Traceback (most recent call last): 
    File "~/Code/Python/venvs/main/lib/python3.4/site-packages/PIL/ImageTk.py", line 176, in paste 
    tk.call("PyImagingPhoto", self.__photo, block.id) 
_tkinter.TclError: invalid command name "PyImagingPhoto" 

During handling of the above exception, another exception occurred: 

Traceback (most recent call last): 
    File "~/Code/Python/main/test.py", line 15, in <module> 
    show(Image.open("test.jpg"), text="Test") 
    File "~/Code/Python/main/test.py", line 8, in show 
    photo = ImageTk.PhotoImage(img) 
    File "~/Code/Python/venvs/main/lib/python3.4/site-packages/PIL/ImageTk.py", line 115, in __init__ 
    self.paste(image) 
    File "~/Code/Python/venvs/main/lib/python3.4/site-packages/PIL/ImageTk.py", line 180, in paste 
    from PIL import _imagingtk 
ImportError: cannot import name '_imagingtk' 

回答

4

,所以我不得不在過去的這幾天同樣的問題,終於得到了解決。我運行Ubuntu 14.04以及我相信我正在運行Python 2.7。 ,我正在運行的代碼是以下

from Tkinter import * 
from PIL import Image, ImageTk 

app_root = Tk() 
img = ImageTk.PhotoImage(Image.open("detailedmodel.jpg")) 

imglabel = Label(app_root, image=img).grid(row=1, column=1) 

app_root.mainloop() 

這是產生錯誤:

ImportError: cannot import name _imagingtk 

我嘗試了一些不同的東西來解決這個錯誤基於其他解決方案在線,通常只是卸載和用不同的開發人員庫安裝枕頭,但腳本不斷崩潰,出現同樣的錯誤。 最後,我發現,在終端進入:

sudo pip2.7 install -I --no-cache-dir Pillow 

似乎來解決這個問題。與其他安裝,我想我是用python 3的錯誤版本的枕頭而不是2.7。

希望這會有所幫助,但看起來你可能已經解決了這個問題。

相關問題