我无法运行此代码
from tkinter import *
from PIL import ImageTk , Image
from multiprocessing import *
root = Tk()
def imgs(img):
img1 = "C:/Users/ASUS/pixel/"+img+".png"
global img2
img2 = ImageTk.PhotoImage(Image.open(img1))
l = Label(root, image = img2)
l.pack()
# prints , inputs , etc
if __name__ == '__main__':
imgs("m_man")
p = Process(args = (img2), target = imgs)
p.start()
# more prints , etc
我一直在收到这个错误:TypeError: 'PhotoImage' object is not iterable
,我不明白这个错误意味着什么,我能做些什么来修复代码,有人能解释一下这个错误是什么意思吗?
Process
的参数args
需要一个可迭代的对象,如列表或元组,但您向它传递了一个无法迭代的项。您想传递一个元组,但python中的括号不构成元组,逗号构成元组。(img2)
不是元组,它只是括号中的单个项。(img2,)
是具有单个元素img2
的元组。所以你需要这样称呼它:
p = Process(args = (img2,), target = imgs)