Ошибка типа: объект PhotoImage не повторяется - PullRequest
0 голосов
/ 20 марта 2020

Я не смог запустить этот код

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 и я не понимаю, что означает ошибка, что я могу сделать, чтобы исправить код, и кто-то может объяснить, что означает ошибка

1 Ответ

0 голосов
/ 20 марта 2020

Аргумент args из Process ожидает итеративный объект, такой как список или кортеж, но вы передаете ему один элемент, который не может быть повторен. Вы хотели передать кортеж, но скобка в python не делает кортеж, запятая делает. (img2) - это не кортеж, это просто один элемент в скобках. (img2,) - это кортеж с одним элементом img2. Поэтому вам нужно назвать это так:

p = Process(args = (img2,), target = imgs)
...