python如何在canvas中加入图片

Exception in Tkinter callback
Traceback (most recent call last):
File "C:\Program Files (x86)\Python38-32\lib\tkinter_init_.py", line 1883, in call
return self.func(*args)
File "C:\桌面\srtp.py", line 79, in direction
im=ImageTk.PhotoImage(image)
File "C:\Program Files (x86)\Python38-32\lib\site-packages\PIL\ImageTk.py", line 112, in init
self.photo = tkinter.PhotoImage(**kw)
File "C:\Program Files (x86)\Python38-32\lib\tkinter_init_.py", line 4061, in init
Image.init(self, 'photo', name, cnf, master, **kw)
File "C:\Program Files (x86)\Python38-32\lib\tkinter__init
.py", line 3994, in init
raise RuntimeError('Too early to create image')
RuntimeError: Too early to create image

这是图片

img


2.png
下面是导入后的效果

img

代码

from tkinter import *

master = Tk()
#创建Canvas设置宽度500,高度360,背景粉色
canvas = Canvas(master, width=500, height=365,bg='pink')

canvas.pack()
#读取图片
img = PhotoImage(file="2.png")
#Canvas中导入图片显示
canvas.create_image(20,20,anchor=NW,image=img)
mainloop()

要先定义一下:root=tkinter.Tk(),参考:
https://blog.csdn.net/John__wang/article/details/22325881

https://stackoverflow.com/questions/39046134/too-early-to-create-image