Python ImportError:无法在virtualenv中导入名称“_imagingtk”

时间:2015-09-20 13:44:16

标签: python tkinter virtualenv python-3.4 pillow

我想开始使用枕头,但我遇到了一些问题:
起初,我以为我可以简单地pip install pillow,所以我激活了我的virtualenv并完成了那个。当它不起作用时,我意识到我需要为枕头安装一些依赖项(installation)。我在Ubuntu 14.04上。但即使在我安装了这些依赖项并重新安装了枕头之后,代码也无效。直到我在我的主要Python3.4安装上的virtualenv和pip安装枕头之外尝试它,我的代码突然起作用。

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'

2 个答案:

答案 0 :(得分:5)

所以我在最近几天遇到了同样的问题,最后得到了解决。我也在运行Ubuntu 14.04,我相信我正在运行python 2.7。 我运行的代码是以下

ImportError: cannot import name _imagingtk

这产生了错误:

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

我尝试了一些不同的东西来解决基于其他在线解决方案的错误,通常只是卸载和安装枕头与不同的开发人员库,但脚本一直崩溃与相同的错误。 最后我发现在终端进入:

{{1}}

似乎解决了这个问题。随着其他安装,我想我正在使用错误版本的枕头为python 3而不是2.7。

希望这会有所帮助,但看起来你可能已经解决了这个问题。

答案 1 :(得分:0)

删除python目录中lib-packages中的PIL和Pillow包: 我正在使用Conda Env,所以

  

conda删除PIL

  

康茄去除枕头

或 直接在lib-packages目录中删除它们(建议:制作一个备份文件夹)。

然后,在此网站安装枕头:http://www.lfd.uci.edu/~gohlke/pythonlibs/#psycopg。 如果您使用Windows平台安装PIL此站点:http://www.pythonware.com/products/pil/(根据您的python版本选择)。