все Python 3до 3.13Удалено из стандартной библиотекипонятие
cgitb
удалённые модули
Подробный отчёт об исключении в CGI-скрипте, в HTML или тексте. Удалён в Python 3.13 — используйте traceback и logging.
Синтаксис
import cgitb # до 3.13
cgitb.enable() подменял sys.excepthook: необработанное исключение превращалось в страницу с кодом вокруг ошибки и значениями переменных, а cgitb.text() давал то же текстом. Убран по PEP 594 вместе с cgi. Как переписать: трассировку в строку даёт traceback.format_exc(), в журнал — logging.exception() внутри except; свой обработчик ставится через sys.excepthook; значения переменных покажет traceback.TracebackException(..., capture_locals=True). Отладочную страницу веб-фреймворки показывают сами. Пакет standard-cgitb (и legacy-cgi) на PyPI возвращает модуль.
Примеры
# Python 3.13+
try:
import cgitb
except ModuleNotFoundError as e:
print(type(e).__name__) # → ModuleNotFoundError
# Python 3.13+
import traceback
try:
1 / 0
except ZeroDivisionError:
report = traceback.format_exc()
print(report.splitlines()[-1]) # → ZeroDivisionError: division by zero
import cgitb, sys
try:
1 / 0
except ZeroDivisionError:
report = cgitb.text(sys.exc_info())
print('ZeroDivisionError' in report) # → True
См. также
Частые ошибки
Открыть в полном глоссарииdocs.python.orgСообщить о неточности