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

--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to