多处理:TypeError:'int'对象不可迭代

时间:2015-08-07 18:13:21

标签: python python-3.x multiprocessing

我正在使用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的副本,因为它是相同的错误,是的,但是原因不同,请在尝试将此问题标记为重复之前阅读问题/代码。

1 个答案:

答案 0 :(得分:12)

p =进程(target = main,args = p_number) args需要是一个元组,但你给它一个整数。尝试: p =进程(target = main,args =(p_number,))