Как исправить ошибку AssertionError в многопроцессорном модуле pathos.helpers?
Я использую многопроцессорный модуль на основе укропа из pathos.helpers
, который имеет однозначное сопоставление с регулярным multiprocessing
, Это работало нормально, пока я не начал получать AssertionError
,
Мой вопрос очень похож на то, что многопроцессный модуль Pythons (с укропом) выдает бесполезную ошибку AssertionError, за исключением того, что я использую Mac. Я пробовал это с и без pool.close()
а также pool.join()
,
Модуль из pathos.helpers
кажется, не имеет clear()
а также restart()
методы - имеет смысл, учитывая сопоставление с multiprocessing
, Это также кеширует пулы, как комментарий к этому вопросу указывает на pathos.multiprocessing
? Если да, как я могу предотвратить это?
Вот упрощенная версия моего кода:
from pathos.helpers import mp
if __name__ == '__main__':
l = mp.Lock()
pool = mp.Pool(initializer=init, initargs=(l,), processes = 4)
results = pool.map(run_func, xyz)
pool.close()
pool.join()
Вот ошибка, которую я получаю:
Traceback (most recent call last):
File "run_xyz.py", line 284, in <module>
results = pool.map(run_func, xyz)
File "/usr/local/lib/python2.7/site-packages/multiprocess/pool.py", line 253, in map
return self.map_async(func, iterable, chunksize).get()
File "/usr/local/lib/python2.7/site-packages/multiprocess/pool.py", line 572, in get
raise self._value
AssertionError