Je suis désolé que je ne peux pas reproduire l'erreur avec un exemple simple, et mon code est trop compliqué pour le poste. Si je lance le programme dans IPython shell au lieu de l'ordinaire python, les choses fonctionnent bien.
J'ai regardé quelques notes précédentes sur ce problème. Ils ont tous été provoqués par l'utilisation de la piscine à l'appel de la fonction définie à l'intérieur d'une fonction de classe. Mais ce n'est pas le cas pour moi.
Exception in thread Thread-3:
Traceback (most recent call last):
File "/usr/lib64/python2.7/threading.py", line 552, in __bootstrap_inner
self.run()
File "/usr/lib64/python2.7/threading.py", line 505, in run
self.__target(*self.__args, **self.__kwargs)
File "/usr/lib64/python2.7/multiprocessing/pool.py", line 313, in _handle_tasks
put(task)
PicklingError: Can't pickle <type 'function'>: attribute lookup __builtin__.function failed
Je vous serais reconnaissant de toute aide.
Mise à JOUR: La fonction que j'ai cornichon est définie au plus haut niveau du module. Bien qu'il appelle une fonction qui contient une fonction imbriquée. j'.e, f() appelle g() appelle h() qui a une fonction imbriquée (i), et je fais appel à la piscine.apply_async(f). f(), g(), h() sont définies au plus haut niveau. J'ai essayé exemple plus simple avec ce modèle et il fonctionne bien.