Piszę program próbki do testowania użycie wieloprocesorowe pulę pracowników w Pythonie 2.7.2+pyton basen wieloprocesorowe Twierdzenie Błąd tłumacza
Jest to kod Pisałem w interpretera Pythona ubuntu
>>> from multiprocessing import Pool
>>> def name_append(first_name,last_name):
... return first_name+" "+last_name
...
>>> from functools import partial
>>> partial_name_append=partial(name_append,'kiran')
>>> partial_name_append('acb')
'kiran acb'
>>> abc='kiran'
>>> pool=Pool(processes=4)
>>> pool.map(partial_name_append,abc)
['kiran k', 'kiran i', 'kiran r', 'kiran a', 'kiran n']
>>> pool.close()
>>> pool.join()
>>> pool.map(partial_name_append,abc)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python2.7/multiprocessing/pool.py", line 226, in map
assert self._state == RUN
AssertionError
Po tym, jak dostałem błędy pikle, nad moją pulą kodu pracowników dla dużych zestawów danych, próbuję zrobić małe przykłady i spróbować dowiedzieć się, co jest błędem.
Nie rozumiem, dlaczego to samo wyrażenie "pool.map" nie działa, gdy działało powyżej. Myślę, że poprawnie wykonałem "mapę puli", ale nie rozumiem powodu.
Jest to błąd związany z "PicklingError: Nie można marynowane: wyszukiwanie atrybutu wbudowane .function failed"
Czy ktoś może mi pomóc?
Dzięki
Funkcja "multiprocessing.Pool()' nie działa w Interpreter interakcyjny. Sprawdź dokumentację [tutaj] (http://docs.python.org/library/multiprocessing.html) –
'multiprocess.Pool()' działa jednak w Interaktywnym tłumaczu. –