<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 10pt;
font-family:Tahoma
}
--></style>
</head>
<body class='hmmessage'>
<font class="Apple-style-span" face="Tahoma" size="2">Using:</font><div style="font-family: Tahoma; font-size: 10pt; "><div>Python 2.7.0+ (r27:82500, Sep 15 2010, 18:14:55)&nbsp;</div><div>[GCC 4.4.5] on linux2</div></div><div style="font-family: Tahoma; font-size: 10pt; ">(Ubuntu 10.10)</div><div style="font-family: Tahoma; font-size: 10pt; "><br></div><div style="font-family: Tahoma; font-size: 10pt; ">Method to reproduce error:</div><div style="font-family: Tahoma; font-size: 10pt; "><br></div><div style="font-family: Tahoma; font-size: 10pt; ">1. Defining a module which is later imported by another:</div><div style="font-family: Tahoma; font-size: 10pt; "><br></div><div style="font-family: Tahoma; font-size: 10pt; ">---------------------------------------------------------------------</div><div style="font-family: Tahoma; font-size: 10pt; "><br></div><div><div><span class="Apple-style-span" style="font-family: Tahoma; font-size: 10pt; ">class SomeThing:</span></div><div><font class="Apple-style-span" face="Tahoma" size="2"><br></font></div><div><font class="Apple-style-span" face="Tahoma" size="2">&nbsp;&nbsp; &nbsp;def __init__(self):</font></div><div><font class="Apple-style-span" face="Tahoma" size="2">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;self.variable = 'Where is my bytecode?'</font></div><div><font class="Apple-style-span" face="Tahoma" size="2"><br></font></div><div><font class="Apple-style-span" face="Tahoma" size="2">&nbsp;&nbsp; &nbsp;def deliver(self):</font></div><div><font class="Apple-style-span" face="Tahoma" size="2">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;return self.variable</font></div><div><font class="Apple-style-span" face="Tahoma" size="2"><br></font></div><div><font class="Apple-style-span" face="Tahoma" size="2"><br></font></div><div><font class="Apple-style-span" face="Tahoma" size="2">if __name__ == '__main__':</font></div><div><font class="Apple-style-span" face="Tahoma" size="2">&nbsp;&nbsp; &nbsp;obj = SomeThing()</font></div><div><font class="Apple-style-span" face="Tahoma" size="2">&nbsp;&nbsp; &nbsp;print obj.deliver()</font></div></div><div><font class="Apple-style-span" face="Tahoma" size="2"><br></font></div><div><font class="Apple-style-span" face="Tahoma" size="2"><meta http-equiv="content-type" content="text/html; charset=utf-8"><span class="Apple-style-span" style="font-size: 13px; ">---------------------------------------------------------------------</span></font></div><div><font class="Apple-style-span" face="Tahoma" size="2"><br></font></div><div><font class="Apple-style-span" face="Tahoma" size="2">2. Run this module:</font></div><div><font class="Apple-style-span" face="Tahoma" size="2">Output of the Python Shell: Where is my bytecode?</font></div><div><font class="Apple-style-span" face="Tahoma" size="2">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &gt;&gt;&gt;</font></div><div><font class="Apple-style-span" face="Tahoma" size="2"><br></font></div><div><font class="Apple-style-span" face="Tahoma" size="2">3. Defining the importing module:</font></div><div><font class="Apple-style-span" face="Tahoma" size="2"><br></font></div><div><font class="Apple-style-span" face="Tahoma" size="2"><meta http-equiv="content-type" content="text/html; charset=utf-8"><span class="Apple-style-span" style="font-size: 13px; ">---------------------------------------------------------------------</span></font></div><div><font class="Apple-style-span" face="Tahoma" size="2"><br></font></div><div><font class="Apple-style-span" face="Tahoma"><div style="font-size: small; ">class UseSomeThing:</div><div style="font-size: small; "><br></div><div style="font-size: small; ">&nbsp;&nbsp; &nbsp;def __init__(self, something):</div><div style="font-size: small; ">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;self.anything = something</div><div style="font-size: small; "><br></div><div style="font-size: small; ">&nbsp;&nbsp; &nbsp;def giveanything(self):</div><div style="font-size: small; ">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;return self.anything</div><div style="font-size: small; "><br></div><div style="font-size: small; "><br></div><div style="font-size: small; ">if __name__ == '__main__':</div><div style="font-size: small; ">&nbsp;&nbsp; &nbsp;anything = UseSomeThing(SomeThing.SomeThing().deliver()).giveanything()</div><div style="font-size: small; ">&nbsp;&nbsp; &nbsp;print anything</div><div style="font-size: small; "><br></div><div style="font-size: small; "><meta http-equiv="content-type" content="text/html; charset=utf-8"><span class="Apple-style-span" style="font-size: 13px; ">---------------------------------------------------------------------</span></div><div style="font-size: small; "><span class="Apple-style-span" style="font-size: 13px; "><br></span></div><div style="font-size: small; "><span class="Apple-style-span" style="font-size: 13px; ">4. Run this module:</span></div><div style="font-size: small; "><span class="Apple-style-span" style="font-size: 13px; ">Output of the Python Shell: Where is my bytecode</span></div><div style="font-size: small; "><span class="Apple-style-span" style="font-size: 13px; ">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&gt;&gt;&gt;</span></div><div style="font-size: small; "><span class="Apple-style-span" style="font-size: 13px; ">(One can find SomeThing.pyc on the disc.)</span></div><div style="font-size: small; "><span class="Apple-style-span" style="font-size: 13px; "><br></span></div><div style="font-size: small; "><span class="Apple-style-span" style="font-size: 13px; ">5. Changing the imported module:</span></div><div style="font-size: small; "><span class="Apple-style-span" style="font-size: 13px; "><br></span></div><div style="font-size: small; "><span class="Apple-style-span" style="font-size: 13px; "><meta http-equiv="content-type" content="text/html; charset=utf-8"><div style="text-indent: 0px !important; font-family: Tahoma; font-size: 10pt; ">---------------------------------------------------------------------</div><div style="text-indent: 0px !important; font-family: Tahoma; font-size: 10pt; "><br style="text-indent: 0px !important; "></div><div style="text-indent: 0px !important; font-family: 'Times New Roman'; font-size: 12pt; "><div style="text-indent: 0px !important; "><span class="Apple-style-span" style="text-indent: 0px !important; font-family: Tahoma; font-size: 10pt; ">class SomeThing:</span></div><div style="text-indent: 0px !important; "><font class="Apple-style-span" face="Tahoma" size="2" style="text-indent: 0px !important; "><br style="text-indent: 0px !important; "></font></div><div style="text-indent: 0px !important; "><font class="Apple-style-span" face="Tahoma" size="2" style="text-indent: 0px !important; ">&nbsp;&nbsp; &nbsp;def __init__(self):</font></div><div style="text-indent: 0px !important; "><font class="Apple-style-span" face="Tahoma" size="2" style="text-indent: 0px !important; ">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;self.variable = 'What the hell is this? It could not be Python!'</font></div><div style="text-indent: 0px !important; "><font class="Apple-style-span" face="Tahoma" size="2" style="text-indent: 0px !important; "><br style="text-indent: 0px !important; "></font></div><div style="text-indent: 0px !important; "><font class="Apple-style-span" face="Tahoma" size="2" style="text-indent: 0px !important; ">&nbsp;&nbsp; &nbsp;def deliver(self):</font></div><div style="text-indent: 0px !important; "><font class="Apple-style-span" face="Tahoma" size="2" style="text-indent: 0px !important; ">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;return self.variable</font></div><div style="text-indent: 0px !important; "><font class="Apple-style-span" face="Tahoma" size="2" style="text-indent: 0px !important; "><br style="text-indent: 0px !important; "></font></div><div style="text-indent: 0px !important; "><font class="Apple-style-span" face="Tahoma" size="2" style="text-indent: 0px !important; "><br style="text-indent: 0px !important; "></font></div><div style="text-indent: 0px !important; "><font class="Apple-style-span" face="Tahoma" size="2" style="text-indent: 0px !important; ">if __name__ == '__main__':</font></div><div style="text-indent: 0px !important; "><font class="Apple-style-span" face="Tahoma" size="2" style="text-indent: 0px !important; ">&nbsp;&nbsp; &nbsp;obj = SomeThing()</font></div><div style="text-indent: 0px !important; "><font class="Apple-style-span" face="Tahoma" size="2" style="text-indent: 0px !important; ">&nbsp;&nbsp; &nbsp;print obj.deliver()</font></div></div><div style="text-indent: 0px !important; font-family: 'Times New Roman'; font-size: 12pt; "><font class="Apple-style-span" face="Tahoma" size="2" style="text-indent: 0px !important; "><br style="text-indent: 0px !important; "></font></div><div style="text-indent: 0px !important; font-family: 'Times New Roman'; font-size: 12pt; "><font class="Apple-style-span" face="Tahoma" size="2" style="text-indent: 0px !important; "><span class="Apple-style-span" style="text-indent: 0px !important; font-size: 13px; ">---------------------------------------------------------------------</span></font></div><div style="text-indent: 0px !important; font-family: 'Times New Roman'; font-size: 12pt; "><font class="Apple-style-span" face="Tahoma" size="2" style="text-indent: 0px !important; "><span class="Apple-style-span" style="text-indent: 0px !important; font-size: 13px; "><br></span></font></div>6. Run the changed module:</span></div><div style="font-size: small; "><span class="Apple-style-span" style="font-size: 13px; ">Output of the Python Shell:&nbsp;</span>What the hell is this? It could not be Python!</div><div style="font-size: small; ">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &gt;&gt;&gt;</div><div style="font-size: small; "><br></div><div style="font-size: small; ">7. Run the importing module again:</div><div style="font-size: small; ">Output of the Python Shell:&nbsp;<b>Where is my bytecode?</b></div></font><meta http-equiv="content-type" content="text/html; charset=utf-8"><div style="text-indent: 0px !important; font-size: 12pt; "><font class="Apple-style-span" face="Tahoma" size="2" style="text-indent: 0px !important; "><b>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &gt;&gt;&gt;</b></font></div><div style="text-indent: 0px !important; "><font class="Apple-style-span" face="Tahoma" size="2">8. Deleting the bytecode of the imported module makes no effect!</font></div><div style="text-indent: 0px !important; "><font class="Apple-style-span" face="Tahoma" size="2"><br></font></div><div style="text-indent: 0px !important; "><font class="Apple-style-span" face="Tahoma" size="2">Remark: I think that I have observed yesterday late night a similar effect on Windows XP</font></div><div style="text-indent: 0px !important; "><font class="Apple-style-span" face="Tahoma" size="2">with Python 2.7.1 <b>and</b> Python 3.1.3. But when I have tried it out today in the morning the</font></div><div style="text-indent: 0px !important; "><font class="Apple-style-span" face="Tahoma" size="2">error hasn't appeared. So it may be that the Python interpreter isn't working correctly only</font></div><div style="text-indent: 0px !important; "><font class="Apple-style-span" face="Tahoma" size="2">on Ubuntu 10.10.</font></div><meta http-equiv="content-type" content="text/html; charset=utf-8"></div>                                               </body>
</html>