[IPython-user] Re: Auto-discard notification
fperez at colorado.edu
Thu Dec 18 13:42:28 CST 2003
Maciej Kalisiak wrote:
>>Or the import keyword? If you user @run <file>, you are guaranteed that
>>the source for <file> IS reloaded fresh everytime. However, any module
>>imported by <file> which has been modified is NOT reloaded.
> Ahhhhhhh. So if foo.py imports bar.py, and I have edited bar.py, then
> the next invocation of foo.py will still use old copy of bar.py. Hmm, I
> guess that makes sense, with Python's handling of modules (AFAI
> understand it).
That's exactly the problem. @dreload goes a long way to help here, but it's
>>>Second, is there a way to have "ctrl-c", or some other keystroke combo
>>>drop from a running program to IPython/pdb, so I can inspect state of
>>>various Python objects? As is, ctrl-c quits my program AND IPython.
>>There are two options:
>>1. Use @pdb within ipython. Any uncaught exception will trigger pdb. @pdb
>>is an on/off toggle (see its docstring for details).
> I believe this is what I always use... exceptions thrown by my progs get
> nicely caught and I get dropped into pdb. Hence my hunting around for
> how to make Ctrl-C do the same, seeing as that should be just a
>>By the way, in which platform do you see Ctrl-C quitting IPython? This
>>should definitely NOT be happening. Which version of ipython are you using?
> This is on Linux (Debian, 2.4.*). latest Python 2.3. IPython 2.3.3c1,
> although I think I've seen this in prior versions too. Of note might be
> that my app uses wxPython, which may override a lot of things in a
> heavy-handed way. Still, at worst it should just catch the exception
> and swallow it, not cause a full exit... Odd.
Well, it definitely works ok for me with a very simple test. Try this one
yourself to see what you get:
In : cat t.py
In : pdb
Automatic pdb calling has been turned ON
In : run t
KeyboardInterrupt Traceback (most recent call last)
----> 4 x=raw_input('enter something\n')
6 print 'x=',x
-> x=raw_input('enter something\n')
(Pdb) print y
WARNING: Failure executing file: <t.py>
> I'm thinking I might have some Ctrl-C handling in my code somewhere, not
> sure in what form (and unlikely, but possible), but even so, am I
> correct in assuming that the program running inside IPython should not
> have a way of making IPython exit?
Your assumption is correct. But since you mentioned wxpython, all bets are
off :) Wxpython is always very tricky to deal with, so it may well be the
More information about the IPython-user