Python многопроцессорная обработка apply_asyn c: нельзя передать список списков в качестве аргумента? - PullRequest
0 голосов
/ 23 апреля 2020

Я пытаюсь использовать многопроцессорность в Python. Следующий код

import numpy as np
import multiprocessing as mp

def foo(g):
    for i in g:
        print(i)

bubbles = [[1, 1], [2, 3], [6, 5]]
bubblesParts = np.array_split(bubbles, 2)

for part in bubblesParts:
    foo(part)

if __name__ == '__main__':
    with mp.Pool(mp.cpu_count()) as p:
        for part in bubblesParts:
            print(part)
            p.apply_async(foo, args=(part)).get()

дает мне TypeError: foo() takes 1 positional argument but 2 were given.

Сначала я подумал, что это потому, что, возможно, я не могу использовать список списков в качестве аргумента, но первый для l oop показал мне, что я могу.

Функция apply_asyn c как-то пытается распаковать часть списка, которая передается как аргумент foo? Или в чем еще может быть проблема?

...