Не работает ли functools.partial с multiprocessing.Pool.map?

У меня есть код, который упрощается вниз, выглядит так:

run = functools.partial(run, grep=options.grep, print_only=options.print_only, force=options.force)

if not options.single and not options.print_only and options.n > 0:
    pool = multiprocessing.Pool(options.n)
    Map = pool.map
else: Map = map

for f in args:
    with open(f) as fh: Map(run, fh)

try:
    pool.close()
    pool.join()
except NameError: pass

Это отлично работает, когда я запускаю его в режиме одного процесса, но с ошибками, такими как

TypeError: type 'partial' takes at least one argument

смешивается вместе с длинными столами вызовов через модуль многопроцессорности. Что происходит?

Я использую python 2.6.1.

Ответ 1

Google сообщает мне, что это ошибка в Python; по-видимому, зафиксирован в Py3k. Вероятно, это связано с тем, что partial не является сорванным.

Существует обходной путь.