Как я могу выполнить тест if run из ipython в Python?

Чтобы облегчить отладку с Ipython, я включаю в начало своих скриптов следующее:

from IPython.Debugger import Tracer
debug = Tracer()

Однако, если я запускаю свой скрипт из командной строки с помощью

$ python myscript.py

Я получаю сообщение об ошибке, связанное с Ipython. Есть ли способ сделать следующее

if run_from_ipython():
    from IPython.Debugger import Tracer
    debug = Tracer()

Таким образом, я импортирую функцию Tracer() только тогда, когда она мне нужна.


person Viktiglemma    schedule 21.03.2011    source источник


Ответы (2)


Это, вероятно, то, что вы ищете:

def run_from_ipython():
    try:
        __IPYTHON__
        return True
    except NameError:
        return False
person Tom Dunham    schedule 21.03.2011
comment
Более подробное определение конфигурации IPython (независимо от того, загружен ли pylab и находится ли он в встроенном режиме) обсуждается здесь: stackoverflow.com/questions/15341757/ - person Ioannis Filippidis; 24.07.2013

Путь Python заключается в использовании исключений. Нравиться:

try:
    from IPython.Debugger import Tracer
    debug = Tracer()
except ImportError:
    pass # or set "debug" to something else or whatever
person Jan Hudec    schedule 21.03.2011
comment
+1 чаще встречается в Python, чтобы попробовать что-то, а не тестировать. - person Andrea Zonca; 21.03.2011