PySnooper 是一个非常方便的调试器。
如果你想知道哪些行代码是正常运行,哪些行不正常。据说大多数人会在可疑位置使用 print 输出语句。。
现在,有了PySnooper。它能告诉您哪些代码正在运行,以及局部变量的值是什么。
其实,PySnooper 就是替代了一行一行print的重复性工作,给你的代码一个pysnooper装饰器,它能自动识别到语句和变量并将其值print出来:
PySnooper是个开源项目,使用前需要先安装;
安装方式推荐有很多种,推荐使用pip;
pip 是 Python 的包安装程序。其实,pip 就是 Python 标准库(The Python Standard Library)中的一个包,只是这个包比较特殊,用它可以来管理 Python 标准库(The Python Standard Library)中其他的包。pip 是一个命令行程序。 安装 pip 后,会向系统添加一个 pip 命令,该命令可以从命令提示符运行。
安装pip:
进行安装,
安装完成后,将pip加入到系统环境变量中
以上只针对于windows系统,其他系统也可以参考;
等待提示安装成功既可;
在一个函数上添加一个装饰器即可
执行以上代码,输出如下:
可以看到,它将每一行变量的值都输出到屏幕上,仅写一行代码—使用装饰器就可以实现这个方便的调试功能,不用一行行写print了;
如果你觉得print到屏幕上不方便,还可以将其输出到log文件中;只需打开装饰器,并将输出重定向到一个专用的日志文件,将日志文件路径指定为第一个参数。
@pysnooper.snoop('H:/tx/001/test.log')
如果你不想追踪整个函数,那可以用 with 块包装你想追踪的那部分;
输出结果如下:
Source path:... h:/code100/011-pysnooper.py
New var:....... img_path = 'H:/tx/001/img_001.png'
New var:....... new_img_path = 'H:/tx/001/new_001.png'
New var:....... os = <module 'os' from 'D:\\python3.8\\lib\\os.py'>
New var:....... Image = <module 'PIL.Image' from 'D:\\python3.8\\lib\\site-packages\\PIL\\Image.py'>
New var:....... target_size = 307200
New var:....... quality = 80
New var:....... step = 10
New var:....... current_img = <PIL.PngImagePlugin.PngImageFile image mode=RGB size=540x960 at 0x33E01D8>
22:10:06.934350 line 21 current_size = os.path.getsize(img_path) # 初始化当前大小为原图片大小
Elapsed time: 00:00:00.001000
PySnooper在github上开源,具体使用可以查看它的使用文档
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。