<br><br><div class="gmail_quote">On Fri, Apr 3, 2009 at 11:35 AM, Anand Chitipothu <span dir="ltr">&lt;<a href="mailto:anandology@gmail.com">anandology@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
2009/4/3 Anand Chitipothu &lt;<a href="mailto:anandology@gmail.com">anandology@gmail.com</a>&gt;:<br>
<div class="im">&gt; I&#39;m noticed a strange Import error in some web.py template. I nailed<br>
&gt; down the problem to the following python code.<br>
&gt;<br>
&gt; __builtins__ = {}<br>
&gt;<br>
&gt; import datetime<br>
&gt; now = datetime.datetime.utcnow()<br>
&gt; print now.strftime(&quot;%m %Y&quot;)<br>
&gt;<br>
&gt; It fails with the following error.<br>
&gt;<br>
&gt; Traceback (most recent call last):<br>
&gt;  File &quot;foo.py&quot;, line 6, in &lt;module&gt;<br>
&gt;    print now.strftime(&quot;%m %Y&quot;)<br>
&gt; KeyError: &#39;__import__&#39;<br>
&gt;<br>
&gt; Any experts around for explaining this behavior?<br>
<br>
</div>Another strange behavior:<br>
<br>
when run as script, it fails at the last line and when run tried in<br>
interpreter, it fails at the import.</blockquote><div><br>When you import a module on the interpreter prompt, it is done<br>using the builtin function __import__. So here you are setting<br>__builtins__ dictionary (it is actually a module, not a dict, so<br>
this itself is strange) which removes all builtin function bindings.<br><br>Hence when you are trying to import in interpreter prompt,<br>it looks around for __import__ from __builtins__ module, does<br>not find it and gives the error.<br>
<br>I can&#39;t explain what is happening when it is run as a module.<br>Perhaps here the import is not a simple __import__ , and<br>hence it works - anyway that needs more explanation.<br><br><br><br> </div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<br>
<div><div></div><div class="h5">_______________________________________________<br>
BangPypers mailing list<br>
<a href="mailto:BangPypers@python.org">BangPypers@python.org</a><br>
<a href="http://mail.python.org/mailman/listinfo/bangpypers" target="_blank">http://mail.python.org/mailman/listinfo/bangpypers</a><br>
</div></div></blockquote></div><br><br clear="all"><br>-- <br>-Anand<br><br><br><br>