将python2 PIL转换为python3代码

时间:2016-09-16 01:22:19

标签: python python-3.5

我正在尝试从python2转换为python3的程序使用PIL python图像库。

我尝试从网上下载缩略图,以便在tkinter风格的gui中显示。以下是我认为的有问题的代码行:

# grab the thumbnail jpg.
req = requests.get(video.thumb)
photo = ImageTk.PhotoImage(Image.open(StringIO(req.content)))

# now this is in PhotoImage format can be displayed by Tk.
plabel = tk.Label(tf, image=photo)
plabel.image = photo
plabel.grid(row=0, column=2)

程序停止并给出TypeError,这是backtrce:

Traceback (most recent call last):   File "/home/kreator/.local/bin/url-launcher.py", line 281, in <module>
    main()
  File "/home/kreator/.local/bin/url-launcher.py", line 251, in main
    runYoutubeDownloader()
  File "/home/kreator/.local/bin/url-launcher.py", line 210, in runYoutubeDownloader
    photo = ImageTk.PhotoImage(Image.open(StringIO(req.content)))
    TypeError: initial_value must be str or None, not bytes

如何满足python3的要求?

1 个答案:

答案 0 :(得分:2)

在这种情况下,您可以看到您导入的库不支持Python3。这不是您可以在自己的代码中修复的内容。

缺乏Python3支持是因为PIL已经停止了很长一段时间。有一个积极维护的分支我建议您使用:https://pillow.readthedocs.io/

您可以从pypi下载。