multiprocessing: TypeError: 'int' object is not iterable

multiprocessing: TypeError: 'int' object is not iterable

我在 Python 3 中使用 multiprocessing 模块,但由于某些原因,当我 运行 程序时它一直抛出 TypeError: 'int' object is not iterable。这就是我所做的:

def main(i):
    global urlDepth
    global row
    global counter
    urlDepth = []
    row = 0
    counter = 0
    login(i)
    crawler(MENU_URL)


if __name__ == '__main__':
    workers = 2
    processes = []
    for p_number in range(workers):
        p = Process(target=main, args=p_number)
        p.start()
        processes.append(p)

    for p in processes:
        p.join()

我不明白为什么会这样,有人可以帮我解决这个问题吗?

不是 TypeError: 'int' object is not iterable 的重复,因为它是同一个错误,是的,但它的原因不同,请在尝试将此问题标记为重复之前阅读 question/code。

p = Process(target=main, args=p_number)

args 需要是一个元组,但你给它一个整数。尝试:

p = Process(target=main, args=(p_number,))