Can I check if I'm running from the interpreter prompt?

alex23 wuwei23 at gmail.com
Fri Nov 14 22:11:23 EST 2008


On Nov 15, 9:48 am, s... at pobox.com wrote:
> Thanks.  I wasn't aware there was a documented way to check for
> interactivity.  

That's more of a side-effect than the actual intent of those
attributes, which are there to hold the interpreter prompts. But it
does seem to be the only way.

It might be worth noting that this -doesn't- hold true for iPython:

IPython 0.9.1 -- An enhanced Interactive Python.
[...]
In [1]: import sys
In [2]: hasattr(sys, 'ps1')
Out[2]: False

> It would have been more obvious if sys had an
> "isinteractive" method or attribute.

You could add the following to your sitecustomize.py:

    sys.isinteractive = hasattr(sys, 'ps1')

If you want to check for iPython as well:

    sys.isinteractive = hasattr(sys, 'ps1') or hasattr(sys,
'ipcompleter')



More information about the Python-list mailing list