简单、小型、交互式、基于控制台的调试器。
krt的Python项目详细描述
简单、小型、交互式、基于控制台的python调试器。
- 跨平台
- django相容性
krt继承自基本的python调试器(称为bdb)。主要 软件包开发背后的原因是 在控制台中调试python脚本(或者图形界面不是 可用)。尽管pdb也有相同的(而且应该有更多) 功能方面,我觉得不太“用户友好”
安装
使用pip安装。
pip install krt
basic脚本调试
python krt.py script.py # or python -m krt script.py
在程序执行期间初始化调试器
这种初始化方法允许在特定行进行初始化
importkrtdeffunc(_something,_nothing):local_var=[1,2,3,4]# now, initialize krtkrt.trace()anything=_somethins+_nothingreturnanything
通过decorator初始化krt。此方法将初始化 krt位于修饰方法或函数的第一行。
importkrt# initialize krt@krt.debug()deffunc(_something,_nothing):local_var=[1,2,3,4]anything=_somethins+_nothingreturnanything
django用法
可以使用上面提到的方法,但是下面的方法允许krt 仅当使用预定义的django命令运行时触发。
设置django命令
- 在django application目录中,创建名为
management,其中创建目录commands跟随
路径,必须存在
django_project/application/management/commands/。
- 在management和^{tt5}内创建__init__.py$
目录
- 在目录commands中,创建文件<command>.py,其中
<command>将与manage.py一起使用假设我们已经
已使用krt_runserver.py。
- 插入创建的文件:``` python from
django.core.management.base从导入basecommand
django.core.management.commands导入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)
在视图中使用decorator
decorator在django项目中使用时,需要设置关键字 参数django到True。如果省略了django参数, 调试器将始终初始化
fromdjango.httpimportHttpResponsefromkrttest.krtimportdebug@debug(django=True)defindex(request):returnHttpResponse("I'm ok.")
现在,当django服务器使用created命令运行时,krt 调试器正在第一行视图上初始化,否则 装饰工被忽略了。
python ./manage.py krt_runserver