2016-04-04 6 views
2

ein Freund erzeugt eine Beizdatei für mich. Als er auf Python arbeitet 3, während ich auf Python arbeiten 2, so erzeugt er die Datei mitPython pickle.load() pkl Datei wirft EOFError

pickle.dump(some_file_to_be_pickled,open("path_to_that_file","wb+"),protocol=2) 

Während ich es mit

the_file = pickle.load(open("path_to_that_file","rb")) 

jedoch zu laden versucht, traf ich den EOFError, das wie folgt aussieht :

Traceback (most recent call last): 
File "<stdin>", line 1, in <module> 
File "/usr/lib64/python2.7/pickle.py", line 1378, in load 
    return Unpickler(file).load() 
File "/usr/lib64/python2.7/pickle.py", line 858, in load 
    dispatch[key](self) 
File "/usr/lib64/python2.7/pickle.py", line 880, in load_eof 
    raise EOFError 
EOFError 

auch mein Freund diese Datei auf seinem Computer mit python 2 zu laden versucht, und er hat kein Problem, das zu tun ...

Irgendeine Idee, um dieses Problem zu beheben? Übrigens benutze ich Python 2.7.5, während er Python 2.7.10 und Python 3.5 verwendet.

+2

Upgrade auf Python 2.7.10? Klingt wie ein Bug wurde zwischen 2.7.5 und 2.7.10 behoben. –

Antwort

0

Ich glaube, ich hatte etwas sehr ähnliches versucht und erhielt das gleiche Ergebnis, das Sie haben; Ich lief auch 2.7.5. Als ich auf 3.4 aktualisiert habe, habe ich den Fehler nicht mehr erhalten und meine Funktion lief richtig, also würde ich mehr als wahrscheinlich sagen, dass Ihr Python veraltet ist.