многопроцессорный пул python Ошибка утверждения в интерпретаторе

Я пишу пример программы для проверки использования многопроцессорного пула рабочих в python 2.7.2+

Это код, который я написал в интерпретаторе python 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

После того, как я получил ошибки pickle, над моим пулом рабочего кода для больших наборов данных, я пытаюсь сделать небольшие примеры и попытаться выяснить, в чем ошибка.

Я не понимаю, почему тот же оператор pool.map не работает, если он работал выше. Я думаю, что правильно выполнил «карту пула», но не понимаю причины.

Связана ли эта ошибка с «PicklingError :Невозможно выбрать :поиск атрибутов встроенная .function failed»

Кто-нибудь может мне помочь?

Спасибо

8
задан kich 29 April 2012 в 00:49
поделиться