Dav*_*vid 3 python tkinter virtualenv pillow python-3.4
我想开始使用枕头,但我遇到了一些问题:
起初,我认为我可以简单pip install pillow,所以我激活了我的virtualenv并做到了这一点.当它不起作用时,我意识到我需要为枕头(安装)安装一些依赖项.我在Ubuntu 14.04上.但即使在我安装了这些依赖项并重新安装了枕头之后,代码也无效.直到我在virtualenv之外尝试并pip在我的主要Python3.4安装上安装了枕头,我的代码突然起作用.
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")
Run Code Online (Sandbox Code Playgroud)
错误:
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'
Run Code Online (Sandbox Code Playgroud)
小智 5
所以我在过去几天遇到了同样的问题,最后得到了解决.我也在运行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()
Run Code Online (Sandbox Code Playgroud)
这产生了错误:
ImportError: cannot import name _imagingtk
Run Code Online (Sandbox Code Playgroud)
我尝试了一些不同的东西来解决基于其他在线解决方案的错误,通常只是卸载和安装枕头与不同的开发人员库,但脚本不断崩溃与相同的错误.最后我发现在终端进入:
sudo pip2.7 install -I --no-cache-dir Pillow
Run Code Online (Sandbox Code Playgroud)
似乎解决了这个问题.随着其他安装,我想我正在使用错误版本的枕头为python 3而不是2.7.
希望这会有所帮助,但看起来你可能已经解决了这个问题.
| 归档时间: |
|
| 查看次数: |
4178 次 |
| 最近记录: |