前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python知识点100篇系列-pysnooper用于调试

python知识点100篇系列-pysnooper用于调试

原创
作者头像
JQ实验室
发布2024-09-27 07:53:16
890
发布2024-09-27 07:53:16
举报
文章被收录于专栏:实用技术
一个 GitHub 热门开源项目:PySnooper

PySnooper 是一个非常方便的调试器。

如果你想知道哪些行代码是正常运行,哪些行不正常。据说大多数人会在可疑位置使用 print 输出语句。。

现在,有了PySnooper。它能告诉您哪些代码正在运行,以及局部变量的值是什么。

其实,PySnooper 就是替代了一行一行print的重复性工作,给你的代码一个pysnooper装饰器,它能自动识别到语句和变量并将其值print出来:

PySnooper是个开源项目,使用前需要先安装;

安装Pysnooper

安装方式推荐有很多种,推荐使用pip;

pip 是 Python 的包安装程序。其实,pip 就是 Python 标准库(The Python Standard Library)中的一个包,只是这个包比较特殊,用它可以来管理 Python 标准库(The Python Standard Library)中其他的包。pip 是一个命令行程序。 安装 pip 后,会向系统添加一个 pip 命令,该命令可以从命令提示符运行。

安装pip:

  • 安装python; 这个是必须安装的;
  • 下载pip: > 官网地址:https://pypi.org/project/pip/#downloads; 下载完毕后,解压
  • 打开命令行窗口,进入到pip解压后的目录;执行代码 > python3 setup.py install

进行安装,

安装完成后,将pip加入到系统环境变量中

  • 验证 打开命令行窗口,输入pip list 或者pip3 list
    在这里插入图片描述
    在这里插入图片描述

以上只针对于windows系统,其他系统也可以参考;

  • 安装所需库: 打开命令行窗口,输入执行以下代码,并回车 > pip install pysnooper
代码语言:python
代码运行次数:0
复制
等待提示安装成功既可;

使用Pysnooper:

- 打印变量

在一个函数上添加一个装饰器即可

执行以上代码,输出如下:

可以看到,它将每一行变量的值都输出到屏幕上,仅写一行代码—使用装饰器就可以实现这个方便的调试功能,不用一行行写print了;

- 输出到日志

如果你觉得print到屏幕上不方便,还可以将其输出到log文件中;只需打开装饰器,并将输出重定向到一个专用的日志文件,将日志文件路径指定为第一个参数。

@pysnooper.snoop('H:/tx/001/test.log')

用 with 块包装上下文的形式调试

如果你不想追踪整个函数,那可以用 with 块包装你想追踪的那部分;

输出结果如下:

代码语言:python
代码运行次数:0
复制
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 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一个 GitHub 热门开源项目:PySnooper
  • 安装Pysnooper
  • 使用Pysnooper:
    • - 打印变量
      • - 输出到日志
        • 用 with 块包装上下文的形式调试
          • 总结
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档