Note that there are some explanatory texts on larger screens.

plurals
  1. POAttributeError: 'module' object has no attribute (when using cPickle)
    primarykey
    data
    text
    <p>I am trying to load the function in a remote environment using cPickle. But I got the error "the 'module' object has no attribute ..." . Where I really stuck is the namespace has already contain that attributes , even though it fails to load Please Help </p> <pre><code>import inspect import cPickle as pickle from run import run def get_source(func): sourcelines = inspect.getsourcelines(func)[0] sourcelines[0] = sourcelines[0].lstrip() return "".join(sourcelines) def fun(f): return f() def fun1(): return 10 funcs = (fun, fun1) sources = [get_source(func) for func in funcs] funcs_serialized = pickle.dumps((fun.func_name,sources),0) args_serialized = pickle.dumps(fun1,0) #Creating the Environment where fun &amp; fun1 doesnot exist del globals()['fun'] del globals()['fun1'] r = run() r.work(funcs_serialized,args_serialized) </code></pre> <p>Here is run.py</p> <pre><code>import cPickle as pickle class run(): def __init__(self): pass def work(self,funcs_serialized,args_serialized): func, fsources = pickle.loads(funcs_serialized) fobjs = [compile(fsource, '&lt;string&gt;', 'exec') for fsource in fsources] #After eval fun and fun1 should be there in globals/locals for fobj in fobjs: try: eval(fobj) globals().update(locals()) except: pass print "Fun1 in Globals: ",globals()['fun1'] print "Fun1 in locals: ",locals()['fun1'] arg = pickle.loads(args_serialized) </code></pre> <p>The error is </p> <pre><code>Fun1 in Globals: &lt;function fun1 at 0xb7dae6f4&gt; Fun1 in locals: &lt;function fun1 at 0xb7dae6f4&gt; Traceback (most recent call last): File "fun.py", line 32, in &lt;module&gt; r.work(funcs_serialized,args_serialized) File "/home/guest/kathi/python/workspace/run.py", line 23, in work arg = pickle.loads(args_serialized) AttributeError: 'module' object has no attribute 'fun1' </code></pre>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload