简单、小型、交互式、基于控制台的调试器。

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命令
  1. 在django application目录中,创建名为 management,其中创建目录commands跟随 路径,必须存在 django_project/application/management/commands/
  2. management和^{tt5}内创建__init__.py$ 目录
  3. 在目录commands中,创建文件<command>.py,其中 <command>将与manage.py一起使用假设我们已经 已使用krt_runserver.py
  4. 插入创建的文件:``` 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项目中使用时,需要设置关键字 参数djangoTrue。如果省略了django参数, 调试器将始终初始化

fromdjango.httpimportHttpResponsefromkrttest.krtimportdebug@debug(django=True)defindex(request):returnHttpResponse("I'm ok.")

现在,当django服务器使用created命令运行时,krt 调试器正在第一行视图上初始化,否则 装饰工被忽略了。

python ./manage.py krt_runserver

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java使用split函数分割字符串,但没有得到期望的结果   未找到包含derby数据库嵌入架构的sql Java桌面应用程序错误   java elasticsearch vs solr用于定制全文搜索系统   java Android:创建没有startOffset的动画延迟?   java如何查看其他应用程序接收的数据?   java如何在Linux中使用D和classpath选项运行jar文件   java和域设计最佳实践   具有相同内存位置的java数组,将显示为输出   连接到java中的elasticsearch?   Java Playframework重定向到带有Json负载的外部url   java无法在Android平台上使用InputStream为蓝牙socket创建ObjectInputStream   使用POI将Excel日期转换为Java日期,年份未正确显示   oracle从数据库层还是Java层调用webservice?