Thx,
Skip
import sys, traceback
try:
raise ValueError
except ValueError:
start = traceback.extract_tb(sys.exc_info()[2])[-1]
Start should show you where the program is being run from.
--Scott David Daniels
Scott....@Acm.Org
hasattr(sys, "ps1")
http://www.python.org/doc/2.5.2/lib/module-sys.html#l2h-5167
"""
ps1
ps2
Strings specifying the primary and secondary prompt of the interpreter.
These are only defined if the interpreter is in interactive mode.
"""
Thanks. I wasn't aware there was a documented way to check for
interactivity. It would have been more obvious if sys had an
"isinteractive" method or attribute.
--
Skip Montanaro - sk...@pobox.com - http://smontanaro.dyndns.org/
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')