Hi, I'm writing a program for tagging which requires a long time to calculate the parameters. I have therefore tried to write a long program that pickles all the data, and pickles a function that uses these parameters to tag an input sentence.
But I'm having trouble with loading the function. The odd thing is that it works fine in the interpreter to pickle and load a function: >>> import pickle >>> def simple(): ... print "This works" ... >>> f=open("simple.txt","w") >>> pickle.dump(simple,f) >>> f.close() >>> s() Traceback (most recent call last): File "<stdin>", line 1, in <module> NameError: name 's' is not defined >>> f=open("simple.txt","r") >>> s=pickle.load(f) >>> s() This works However when I try to do this with the script simple.py (with the exact same commands as above) it doesn't work: $ cat simple.py import pickle def simple(): print "This works" f = open("simple.txt","w") pickle.dump(simple,f) f.close() $ python simple.py $ python Python 2.5 (r25:51918, Sep 19 2006, 08:49:13) [GCC 4.0.1 (Apple Computer, Inc. build 5341)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> import pickle >>> f2 = open("simple.txt","r") >>> s Traceback (most recent call last): File "<stdin>", line 1, in <module> NameError: name 's' is not defined >>> s = pickle.load(f2) Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/Library/Frameworks/Python.framework/Versions/2.5/lib/ python2.5/pickle.py", line 1370, in load return Unpickler(file).load() File "/Library/Frameworks/Python.framework/Versions/2.5/lib/ python2.5/pickle.py", line 858, in load dispatch[key](self) File "/Library/Frameworks/Python.framework/Versions/2.5/lib/ python2.5/pickle.py", line 1090, in load_global klass = self.find_class(module, name) File "/Library/Frameworks/Python.framework/Versions/2.5/lib/ python2.5/pickle.py", line 1126, in find_class klass = getattr(mod, name) AttributeError: 'module' object has no attribute 'simple' >>> I don't get this error message, and I'm annoyed – because I'm used to that things that work in the interpreter also work when written as a program. Can anyone help? regards, Arild Næss _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor