[IPython-User] module reloading in 0.11

Robert Cimrman cimrman3@ntc.zcu...
Wed Aug 3 04:55:16 CDT 2011


Hi Thomas,

On 08/03/11 11:31, Thomas Kluyver wrote:
> Hi Robert,
>
> On 3 August 2011 09:03, Robert Cimrman<cimrman3@ntc.zcu.cz>  wrote:
>
>> In 0.10.2, when one edits a Python script, it is very convenient to try it
>> in
>> ipython shell using the %run command. But, if a module imported in the
>> script
>> changes, it is not reloaded, just as the docs say "(except for sharing
>> global
>> objects such as previously imported modules)".
>>
>> Could this "problem" be solved somehow by the new two-process architecture
>> of
>> 0.11? I have just tried the Git version, and it behaves just like 0.10.2 in
>> this respect.
>>
>
> I don't think the two-process architecture has any effect on it at all - all
> your code is loaded and run in the kernel. You can restart the kernel from
> the frontend, but then you lose everything in your namespace (like closing
> IPython and starting it again).

Yes, I was thinking of restarting the kernel would wipe-out everything. But for 
behaviour like 'clear all' in matlab it should be ok, right?

> Have a look at the code in IPython.lib.deepreload - I think it should be
> possible to tweak the %run magic so that it replaces the
> __builtin__.__import__ function before running code, and puts it back
> afterwards.

I will, thanks for the tip!

r.


More information about the IPython-User mailing list