Skip to main content
This is a pre-production deployment of Warehouse. Changes made here affect the production instance of PyPI (
Help us improve Python packaging - Donate today!

Simple, small, interactive, console-based debugger.

Project Description

Simple, small, interactive, console-based Python debugger.

  • Cross-platform
  • Django compatibile

KRT inherits from basic python debugger (called bdb). The main reason behind development of package was need of user interface during python script debugging in console (or when graphical interface is not available). Although pdb have the same (and propbably much more) functionality, I found it not so “user friendly”.


Install using pip.

pip install krt

Basic script debugging

# or
python -m krt

Initializing debugger during program execution

This method of initialization allows initialization at specific line.

import krt

def func(_something, _nothing):
  local_var = [1, 2, 3, 4]
  # now, initialize krt
  anything = _somethins + _nothing
  return anything

Initializing krt via decorator. This method will initialize krt at 1st line of decorated method or function.

import krt

# initialize krt
def func(_something, _nothing):
  local_var = [1, 2, 3, 4]
  anything = _somethins + _nothing
  return anything

Django usage

One can use methods mentioned above, but method below allows krt triggering only if run with pre-defined django command.

Setting up django command

  1. Inside django applicaiton directory, create directory called management, inside which create directory commands. Following path, must exists django_project/application/management/commands/.
  2. Create inside management and commands directories.
  3. Inside directory commands, create file <command>.py, where <command> will be used with Let’s say that we’ve used
  4. Insert into created file: ```python from import BaseCommand from import runserver
class Command(runserver.Command):
   help = “Sets trigger for krt decorators”

   def __init__(self, *args, **kwargs):
       from django.conf import settings
       setattr(settings, 'krt_django_decorator_trigger_flag', True)
       super(Command, self).__init__(*args, **kwargs)

Use decorator inside view

Decorator, when used in django project, requires setting of keyword argument django to True. If the django argument is omitted, the debugger will be always initialized!

from django.http import HttpResponse
from  krttest.krt import debug

def index(request):
    return HttpResponse("I'm ok.")

Now, when the django server is run with created command, KRT debugger is being initialized on 1st line of view, otherwise the decorators are being ignored.

python ./ krt_runserver

Release History

This version
History Node


History Node


History Node


History Node


History Node


Download Files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, Size & Hash SHA256 Hash Help File Type Python Version Upload Date
(6.1 kB) Copy SHA256 Hash SHA256
Source None Sep 17, 2016

Supported By

Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Google Google Cloud Servers