Beizfehler: Kann nicht <type 'function'> abholen

Ich frage mich, was dieser Fehler bedeuten könnte:

PicklingError: Can't pickle <type 'function'>: attribute lookup __builtin__.function failed 

Ich verstehe, dass es etwas mit der Verwendung von mehreren Kerne zu tun hat. Ich laufe mein Programm auf einem Cluster und verwende 15 Threads in dieser Zeile meines Codes:

 gauss2 = PTSampler(ntemps, renwalkers, rendim, lnlike, lnprior, threads=15) 

Der betreffende Sampler ist derjenige, der für den Parallel Tempering Sampler unter http://dan.iel.fm/emcee/current/user/pt/

Irgendeine Idee, was dieser Fehler bedeuten könnte?

One Solution collect form web for “Beizfehler: Kann nicht <type 'function'> abholen”

Der Fehler bedeutet, dass du versuchst, einen eingebauten FunctionType pflücken … nicht die Funktion selbst. Es ist wahrscheinlich, dass ein Codierungsfehler irgendwo die Klasse der Funktion anstelle der Funktion selbst aufnimmt.

 >>> import sys >>> import pickle >>> import types >>> types.FunctionType <type 'function'> >>> try: ... pickle.dumps(types.FunctionType) ... except: ... print sys.exc_info()[1] ... Can't pickle <type 'function'>: it's not found as __builtin__.function >>> def foo(x): ... return x ... >>> try: ... pickle.dumps(type(foo)) ... except: ... print sys.exc_info()[1] ... Can't pickle <type 'function'>: it's not found as __builtin__.function >>> try: ... pickle.dumps(foo.__class__) ... except: ... print sys.exc_info()[1] ... Can't pickle <type 'function'>: it's not found as __builtin__.function >>> pickle.dumps(foo) 'c__main__\nfoo\np0\n.' >>> pickle.dumps(foo, -1) '\x80\x02c__main__\nfoo\nq\x00.' 

Wenn du ein FunctionType Objekt hast, dann musst alles, was du tun musst, eine der Instanzen dieser Klasse bekommen – also eine Funktion wie foo .

  • XML-Objekt Serialisierung in Python, gibt es irgendwelche Alternativen zur Gnosis?
  • Erhalt der numpy Blick beim Beizen
  • Wie kann ich beschleunigen, um große Objekte zu entfernen, wenn ich viel RAM habe?
  • Ein riesiges Bigram-Wörterbuch zu speichern, um mit Pickle zu filtern
  • Multiprocessing in einer Klasse verwenden
  • Kann Python-Pickle-Lambda-Funktionen?
  • Unpickle macht manchmal leere Objekte
  • Python-Pickle-Crash beim Versuch, den Standardwert in __getattr__ zurückzugeben
  • Python: Mit `copyreg`, um Reduzierstücke für Typen zu definieren, die bereits Reduzierstücke haben
  • Python pickle.dumps AssertionError
  • Dill.detect.children Objekttypen
  • Python ist die beste Programmiersprache der Welt.