Python pickle Anrufe cPickle?

Ich bin neu in Python. Ich bin eine Anpassung fremder code von Python 2.X zu 3.5. Der code lädt eine Datei über cPickle. Ich änderte alle "cPickle" Vorgänge "Gurke", wie ich verstehe, Gurke abgelöst cPickle in 3.5. Ich bekomme diese Ausführung Fehler:

NameError: name 'cPickle' is not defined

Relevante code:

import pickle
import gzip
...
def load_data():
    f = gzip.open('../data/mnist.pkl.gz', 'rb')
    training_data, validation_data, test_data = pickle.load(f, fix_imports=True)
    f.close()
    return (training_data, validation_data, test_data)

Tritt der Fehler in der pickle.load Linie, wenn load_data() ist durch eine andere Funktion. Aber a) weder cPickle oder cpickle erscheinen nicht mehr in alle source-files irgendwo im Projekt (gesucht weltweit) und b) der Fehler tritt nicht auf, wenn ich die Zeilen innerhalb load_data() individuell in der Python-shell (jedoch, ich bekomme ein anderes Daten-format-Fehler). Ist pickle aufrufen cPickle, und wenn ja, wie verhindere ich es?

Shell:
Python-3.5.0 |Anaconda 2.4.0 (x86_64)| (default, Oct 20 2015, 14:39:26)
[GCC 4.2.1 (Apple Inc. build 5577)] on darwin

IDE: IntelliJ 15.0.1 -, Python-3.5.0, anaconda

Unklar, wie es weitergehen soll. Jede Hilfe zu schätzen. Danke.

  • Überprüfen Sie für .pyc Dateien und entfernen Sie Sie. Sie könnte veraltet sein.
InformationsquelleAutor Ron Cohen | 2015-11-17
Schreibe einen Kommentar