Ответ 1
Вставка
import pdb; pdb.set_trace()
войдет в отладчик python в этот момент
Смотрите здесь: http://docs.python.org/library/pdb.html
У меня есть модуль python с функцией:
def do_stuff(param1 = 'a'):
if type(param1) == int:
# enter python interpreter here
do_something()
else:
do_something_else()
Есть ли способ заглянуть в интерпретатор командной строки, где у меня есть комментарий? так что если я запустил следующее в python:
>>> import my_module
>>> do_stuff(1)
Я получаю следующее приглашение в области и контексте, где у меня есть комментарий в do_stuff()
?
Вставка
import pdb; pdb.set_trace()
войдет в отладчик python в этот момент
Смотрите здесь: http://docs.python.org/library/pdb.html
Если вы хотите стандартное интерактивное приглашение (вместо отладчика, как показано в предварительном порядке), вы можете сделать это:
import code
code.interact(local=locals())
Смотрите: код модуля.
Если у вас установлен IPython и вместо него требуется оболочка IPython, вы можете сделать это для IPython >= 0.11:
import IPython; IPython.embed()
или для более старых версий:
from IPython.Shell import IPShellEmbed
ipshell = IPShellEmbed()
ipshell(local_ns=locals())
Если вы хотите использовать интерпретатор Python по умолчанию, вы можете сделать
import code
code.interact(local=dict(globals(), **locals()))
Это позволит получить доступ как к локальным, так и глобальным.
Если вы хотите перейти к интерпретатору IPython, решение IPShellEmbed
устарело. В настоящее время работает:
from IPython import embed
embed()