PySnooper 正在参加 2020 年度 OSC 中国开源项目评选,请投票支持!
PySnooper 在 2020 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
投票让它出道
已投票
授权协议 MIT
开发语言 Python 查看源码 »
操作系统 跨平台
软件类型 开源软件
开发厂商
地区 不详
提 交 者 局长
适用人群 未知
收录时间 2019-04-24

软件简介

PySnooper 在 GitHub 上自嘲是一个“乞丐版”调试工具(poor man's debugger)。

一般情况下,在编写 Python 代码时,如果想弄清楚为什么 Python 代码没有按照预期执行、哪些代码在运行哪些没在运行、局部变量又是什么,我们会使用包含断点和观察模式等功能的调试器,或者直接使用 print 语句打印出来。

但上面的方法都比较麻烦,例如使用调试器需要进行繁琐的设置,使用 print 打印也要很仔细。与它们相比,使用 PySnooper 只需为要调试的函数添加一个装饰器即可,这样就能获得运行函数详细的 log,包括执行的代码行和执行时间,以及局部变量发生变化的确切时间。

之所以称为“乞丐版”,相信是因为 PySnooper 使用起来十分简单,开发者可以在任何庞大的代码库中使用它,而无需进行任何设置。只需添加装饰器,并为日志输出地址指定路径。

示例

下面的代码写了一个函数将传入的值转换为二进制码,并返回一个二进制列表。要使用 PySnooper,只需为函数添加 @pysnooper.snoop()装饰器即可:

import pysnooper

@pysnooper.snoop()
def number_to_bits(number):
    if number:
        bits = []
        while number:
            number, remainder = divmod(number, 2)
            bits.insert(0, remainder)
        return bits
    else:
        return [0]

number_to_bits(6)

输出如下

Starting var:.. number = 6
21:14:32.099769 call         3 @pysnooper.snoop()
21:14:32.099769 line         5     if number:
21:14:32.099769 line         6         bits = []
New var:....... bits = []
21:14:32.099769 line         7         while number:
21:14:32.099769 line         8             number, remainder = divmod(number, 2)
New var:....... remainder = 0
Modified var:.. number = 3
21:14:32.099769 line         9             bits.insert(0, remainder)
Modified var:.. bits = [0]
21:14:32.099769 line         7         while number:
21:14:32.099769 line         8             number, remainder = divmod(number, 2)
Modified var:.. number = 1
Modified var:.. remainder = 1
21:14:32.099769 line         9             bits.insert(0, remainder)
Modified var:.. bits = [1, 0]
21:14:32.099769 line         7         while number:
21:14:32.099769 line         8             number, remainder = divmod(number, 2)
Modified var:.. number = 0
21:14:32.099769 line         9             bits.insert(0, remainder)
Modified var:.. bits = [1, 1, 0]
21:14:32.099769 line         7         while number:
21:14:32.099769 line        10         return bits
21:14:32.099769 return      10         return bits

安装

使用 pip 进行安装

pip install pysnooper
展开阅读全文

代码

的 Gitee 指数为
超过 的项目

评论 (5)

加载中
flask.views下一直报错
2019/07/22 15:56
回复
举报
👍, 很好
2019/04/25 10:15
回复
举报
看着还不错哎。
2019/04/25 09:53
回复
举报
挺好的。某些时候可以不用IDE来做
2019/04/25 09:20
回复
举报
很好
2019/04/25 08:57
回复
举报
更多评论
暂无内容
发表了博客
2019/04/24 09:23

PySnooper

GitHub上刚开源的一个项目,用来寻找 python 代码中的错误。由于平时写的代码行数量少,个人不太喜欢用那种庞大(不轻量)的调试工具,像 pycharm 之类的。以前习惯于用 print 函数打印变量查看状态来找错误。如今这个工具完美适用于我这样的人。个人认为,这个工具非常适合持续服务或者大数据集任务。 这个工具使用起来...

0
0
发表了博客
2019/04/25 17:48

初试PySnooper

Pysooper是什么? 我们写代码会经常出现bug,有的人会使用断点调试器,但是设置这样的断点调试器是花时间的。 所以很多人会在可能出现错误的地方print打印来输出语句。 Pysooper的作用有点类似,你不必小心谨慎的使用print语句,只需要在想要调试的函数中引入一个装饰器。就可以得到函数的详细日志,包括运行了那些行,何...

0
0
发表了博客
2019/04/25 17:22

Python模块之pysnooper

一、简介 调试程序时,很多人喜欢直接用print来代替断点调试,而pysnooper模块比print更方便,以装饰器的形式存在 二、实验环境   操作系统:win10   python版本:python3.6 三、安装pysnooper模块   pip3 install pysnooper 四、简单实例   需求:屏幕打印每个变量的值 import pysnooper @pysnooper.snoop()...

0
0
发表了博客
2019/04/23 18:22

极简Python DeBug工具——PySnooper

DeBug Python 代码的方式有很多种?比如: (1)设置断点 (2)print函数 (3)。。。 本文要介绍的是一个新开源的项目PySnooper ,只要给有疑问的代码加上装饰器,各种信息一目了然,找出错误也就非常简单。 项目地址:https://github.com/cool-RR/pysnooper 极简DeBug工具PySnooper 一般情况下,想要知道哪一行代码在运...

0
0
发表了博客
2019/05/11 12:24

代替print输出的PY调试库:PySnooper

PySnooper¶ Github:https://github.com/lotapp/PySnooper pip install pysnooper 使用:分析整个代码 @pysnooper.snoop() def avg(args): return sum(args) / len(args) PS:调试代码片段 with pysnooper.snoop(): code In [1]: import functools import pysnooper # 分析整个代码 @pysnooper.sn...

0
0
发表了博客
2019/11/28 00:10

python--debug神器pysnooper

使用它你可以获得什么优势: (1)无需用print就可以获得变量的值; (2)以日志地形式进行保存,方便随时查看; (3)可以根据需要,设置调用函数的深度; (4)多个函数的日志,可以设置前缀进行标识; 1.安装 pip install pysnooper 2.官方代码 import pysnooper @pysnooper.snoop() def number_to_bits(number): ...

0
0
发表于服务端专区
2019/10/22 18:00

一个牛逼的 Python 调试工具PySnooper

PySnooper 使用起来十分简单,开发者可以在任何庞大的代码库中使用它,而无需进行任何设置。你只需添加装饰器,并为日志输出地址指定路径,方法是将其路径指定为第一个参数。 目前,PySnooper在GitHub上已经获得7...

0
0
发表了博客
2019/05/03 18:20

一个牛逼的 Python 调试工具PySnooper

原文转自:https://mp.weixin.qq.com/s/OtLr-cNethboMgmCcUx2pA PySnooper 使用起来十分简单,开发者可以在任何庞大的代码库中使用它,而无需进行任何设置。你只需添加装饰器,并为日志输出地址指定路径,方法是将其路径指定为第一个参数。 目前,PySnooper在GitHub上已经获得7047个Star,371个Fork(GitHub地址:https...

0
0
发表于开发技能专区
11/17 17:00

Python调试神器:PySnooper详细使用指南!

△点击上方“Python猫”关注 ,回复“1”领取电子书 剧照:鹿鼎记 作者:写代码的明哥 来源:Python编程时光 对于每个程序开发者来说,调试几乎是必备技能。 代码写到一半卡住了,不知道这个函数执行完的返回结果...

0
0
发表了博客
04/08 11:12

Python3 超强企业级项目调试工具,PySnooper,调试Python3 更方便

感谢作者分享-http://bjbsair.com/2020-04-07/tech-info/30786.html 图/文:迷神 不知道有多少人和我一样,曾经把Print作为Python中使用频率最高的一个函数,成为python,print的重度户。为什么,使用率这么高,主...

0
0
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
暂无内容
5 评论
89 收藏
分享
返回顶部
顶部