7
mam kodu, uproszczone w dół, wygląda następująco:Czy functools.partial nie działa z wieloprocesorem.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
To działa dobrze, gdy go uruchomić w trybie pojedynczego procesu, ale nie z błędami jak ten
TypeError: type 'partial' takes at least one argument
miesza się razem z długie połączenia stosu przez moduł wieloprocesowy. Co się dzieje?
Używam Pythona 2.6.1.
Łącze 'workaround' nie działa! Zaktualizuj –
zaktualizowaną do punktu w web.archive :) – katrielalex