Cashing in PythonWin name space?... seems unexpected to me

w.g.sneddon at gmail.com w.g.sneddon at gmail.com
Thu Oct 8 22:27:22 CEST 2009


On Oct 8, 2:12 pm, Dave Angel <da... at ieee.org> wrote:
> bsneddon wrote:
> > I saw an issue  on winXP  box not connected to internet yesterday,
> > where i was running
> > a script in the interactive window on PythonWin .   I would modify the
> > script save and
> > import and was still running the old version.  I did that several
> > times with same result.
> > I even renamed the function and it showed up but ran the old script.
> > Very strange.
> > <snip>
>
> Caching (not cashing) doesn't come into play here.  Objects are kept as
> long as there is a reference to them somewhere.  So renamed functions
> can still exist under their old name, since nobody has reused the name
> for something newer.
>
> I'm not familiar with PythonWin.  But if it's like the standard python
> interpreter, where you use import at the command line to load a module,
> then I can comment on it.
>
> Doing a second import on the same module will not look at the disk file
> at all.  To get it to re-read the source code, you need reload().  And
> reload() doesn't really do everything you'd expect.  In some cases it
> cannot (for example, references to external DLL's).  So there are
> frequently remnants of the earlier version of things lying around.
>
> If this is really an interpreter environment, I'd exit the environment
> and start it again.   If it's more like a GUI (like Komodo, which I
> use), then the gui will kill the old interpreter and start another one
> when you say "exit" and "run".   Then you have nothing left of the old
> version of the module, and can start from scratch.
>
> As Simon said, you should read about reload(), and its caveats:
>    http://docs.python.org/library/functions.html#reload
>
> DaveA

Thanks I have looked at reload now.  It seem pythonWin tries to use
reload
when doing an import.  I think I need to do a little more reading on
PythonWin.

Bill



More information about the Python-list mailing list