2016-11-07 4 views
3

Ich habe lange Python und Abaqus verwendet. Aber wenn ich meinen Python von 2.7 auf 3.5.2 aktualisiere, tritt ein Fehler auf. Ich versuche ein Objekt A meiner Klasse zu pikeln.Fehler mit Beizmodul. AttributeError: Klasse hat kein Attribut '__new__'

f = open(utilsDir + "aclass.log", 'wb') 
    pickle.dump(A,f,protocol=2) 
    f.close() 

und dann mit dem Python von abaqus, das ist immer noch 2,7.

filepath = utilsDir + 'aclass.log' 
    A1 = pickle.load(file(filepath)) 

Alles, was es hat gearbeitet, bevor meine Python zu aktualisieren, aber jetzt habe ich einen Fehler:

enter image description here

+0

Vielleicht hilft das http://stackoverflow.com/a/1850806/58129 –

+0

Hilft nicht wirklich. Es heißt "Hinweis: Das Übergeben von Gurken zwischen verschiedenen Versionen von Python kann zu Problemen führen. Versuchen Sie daher, auf beiden Plattformen die gleiche Version zu verwenden." Aber ich muss verschiedene Version von Python verwenden " –

+1

Sie können ein anderes Format, z. B. Json betrachten –

Antwort

0

Dies ist alt und die Antwort wird die OP nicht helfen, aber falls jemand stolpert auf Für einen Code, den er ändern kann, tritt dieser Fehler normalerweise auf, wenn die in Python 2 eingelegte Klasse keine neue Stilklasse ist, dh nicht von object erbt.

Verwandte Themen