Сервлет - это уровень на стороне сервера Java.
Существует проект ipdb
, который встраивает iPython в стандартный pdb, поэтому вы можете просто выполнить:
import ipdb; ipdb.set_trace()
Его можно установить с помощью обычного pip install ipdb
.
ipdb
довольно короткий, поэтому вместо easy_installing вы также можете создать файл ipdb.py
где-нибудь на своем пути Python и вставить в него следующее:
import sys
from IPython.Debugger import Pdb
from IPython.Shell import IPShell
from IPython import ipapi
shell = IPShell(argv=[''])
def set_trace():
ip = ipapi.get()
def_colors = ip.options.colors
Pdb(def_colors).set_trace(sys._getframe().f_back)
Из документации IPython :
import IPython.ipapi
namespace = dict(
kissa = 15,
koira = 16)
IPython.ipapi.launch_new_instance(namespace)
запускает оболочку IPython программно. Очевидно, что значения в пространстве имен
dict являются просто фиктивными значениями - на практике может иметь смысл использовать locals ()
.
Обратите внимание, что вы должны жестко запрограммировать это в ; он не будет работать так, как pdb
. Если это то, что вы хотите, ответ DoxaLogos, вероятно, больше похож на то, что вы ищете.
Обычно, когда я использую ipython, я включаю автоматическую отладку с помощью команды «pdb» внутри него.
Затем я запускаю свой сценарий с помощью команды «run myscript.py» в каталог, в котором находится мой скрипт.
Если я получаю исключение, ipython останавливает программу внутри отладчика. Ознакомьтесь с командой справки по волшебным командам ipython (% magic)
Эквивалент
import pdb; pdb.set_trace()
с IPython выглядит примерно так:
from IPython.ipapi import make_session; make_session()
from IPython.Debugger import Pdb; Pdb().set_trace()
Это немного многословно, но полезно знать, если у вас не установлен ipdb. Вызов make_session
требуется один раз для настройки цветовой схемы и т. Д., А вызовы set_trace
можно размещать везде, где вам нужно прервать работу.