Es tut mir leid, dass ich den Fehler nicht mit einem einfacheren Beispiel reproduzieren kann und mein Code zu kompliziert ist, um ihn zu veröffentlichen. Wenn ich das Programm in der IPython-Shell anstelle des regulären Python ausführe, funktionieren die Dinge gut.
Ich habe einige frühere Hinweise zu diesem Problem nachgeschlagen. Sie wurden alle durch die Verwendung von pool zum Aufrufen einer Funktion verursacht, die innerhalb einer Klassenfunktion definiert wurde. Dies ist aber bei mir nicht der Fall.
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
Ich würde mich über jede Hilfe freuen.
Update : Die Funktion, die ich auswähle, wird auf der obersten Ebene des Moduls definiert. Es wird jedoch eine Funktion aufgerufen, die eine verschachtelte Funktion enthält. dh f()
ruft g()
Anrufe auf, h()
die eine verschachtelte Funktion haben i()
, und ich rufe an pool.apply_async(f)
. f()
, g()
, h()
Sind alle auf der obersten Ebene definiert. Ich habe ein einfacheres Beispiel mit diesem Muster versucht und es funktioniert jedoch.
dill
und zu lesenpathos
. Ich habe jedoch kein Glück mit einer der Lösungen bei der Arbeit mit vtkobjects :( Hat es jemand geschafft, Python-Code in paralleler Verarbeitung von vtkPolyData auszuführen?