python的debug神器PySnooper】的更多相关文章

同事给我推荐了这个调试神器,一直没工夫看,今天看了下. 原文链接: 史上最方便的Python Debug工具|腾讯技术说 体验了下,感觉最好的用法:1.优先逐行调试:2.一些复杂状态处理或者偶现的bug,可以用这个库调试:感觉并不会颠覆传统的调试手段,只是让添加日志更加便利了而已. 但是同事从后台开发的角度给出了他的看法,稍微大型的python项目都只有开发的时候才逐行,服务器他们基本都靠日志,只是客户端习惯了debugger的调试.写个桌面程序,debugger很容易,这个服务就没那么简单了,…
DeBug Python 代码的方式有很多种?比如: (1)设置断点 (2)print函数 (3)... 本文要介绍的是一个新开源的项目PySnooper ,只要给有疑问的代码加上装饰器,各种信息一目了然,找出错误也就非常简单. 项目地址:https://github.com/cool-RR/pysnooper 极简DeBug工具PySnooper  一般情况下,想要知道哪一行代码在运行.哪一行不运行.本地变量的值是多少时,大部分人会使用 print 函数,在关键部分打印某个或某组变量的值.形状…
一直在嵌入式行业,熟悉嵌入式的朋友都很了解嵌入式设备上DEBUG的麻烦,特别是一些缺乏断电工具和没有UI界面的设备.久而久之,开发一个新东西,首先就是要先搞定DEBUG手段.最近写了几个测试的python脚本用于跑些压力测试.找了些Python的DEBUG方法并加以处理,形成了方便使用的DEBUG手段. 其实Python的DEBUG LOG很简单很方便,相当于整辆车都做好了,就等你怎么开车了.而我们在C的嵌入式设备上,DEBUG都几乎需要自己造轮子,造车身.然而在Python中我们只需要impo…
前面我们已经介绍了,python中两种最基础的虚拟环境管理工具,venv和virtualenv,其中virtualenv可以和virtualenvwrapper配合使用.详情请参考:https://www.cnblogs.com/doublexi/p/15783355.html 下面我们来介绍另一个python多环境管理神器pyenv pyenv pyenv 主要用来对 Python 解释器进行管理,可以管理系统上的多个版本的 Python 解释器.它的主要原理就是将新的解释器路径放在 PATH…
安装 pip3 install pysnooper 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…
Debug功能对于developer是非常重要的,python提供了相应的模块pdb让你可以在用文本编辑器写脚本的情况下进行debug. pdb是python debugger的简称. 常用的一些命令如下: 命令 用途 break 或 b 设置断点 continue 或 c 继续执行程序 list 或 l 查看当前行的代码段 step 或 s 进入函数 return 或 r 执行代码直到从当前函数返回 exit 或 q 中止并退出 next 或 n 执行下一行 pp 打印变量的值 help 帮助…
使用它你可以获得什么优势: (1)无需用print就可以获得变量的值: (2)以日志地形式进行保存,方便随时查看: (3)可以根据需要,设置调用函数的深度: (4)多个函数的日志,可以设置前缀进行标识: 1.安装 pip install pysnooper 2.官方代码 import pysnooper @pysnooper.snoop() def number_to_bits(number): if number: bits = [] while number: number, remaind…
debug #排除程序故障 print()函数常和#号注释结合在一起用来debug 多行注释有两种快捷操作:1.在需要注释的多行代码块前后加一组三引号''' 2.选中代码后使用快捷键操作:Windows快捷键是ctrl+/,Mac为cmd+/,适用于本地编辑器) 一种异常处理的机制,可以在异常出现时即时捕获,然后内部消化掉,让程序继续运行try…except…语句 Python的所有报错类型https://www.runoob.com/python/python-exceptions.html#…
为了解决python多版本共存,解决不同版本之间的依赖冲突,虚拟环境隔离等问题,我们前面介绍了venv.virtualenv.virtualenvwrapper.pyenv.pipenv等众多工具.下面我们再介绍一个非常强大的多环境管理神器--Anaconda. Anaconda (强大) 1.什么是Anaconda Anaconda是专注于数据分析的Python发行版本,包含了conda.Python等190多个科学包及其依赖项.Anaconda通过管理工具包.开发环境.Python版本,大大…
原文: http://www.lengirl.com/code/python-click.html Click 是用Python写的一个第三方模块,用于快速创建命令行.我们知道,Python内置了一个Argparse 的标准库用于创建命令行,但使用起来有些繁琐,Click相比于Argparse,就好比requests 相比于urllib. 快速使用 Click 的使用大致有两个步骤: 使用 @click.command()装饰一个函数,使之成为命令行接口: 使用 @click.option()等…
最近由于项目需要,以前的python文件需要编辑为EXE供前端客户使用. 由于最早接触的是distutils,所以一开始准备使用distutils和py2exe搭配来进行python的exe化,也就是传统的使用setup.py的方式来进行exe安装.但是结果都不是很好,不是很如人意.并且py2exe所使用的一个python 包互相排斥,只要安装了这个包,就无法进行exe化.甚至代码里面都不需要导入,就会报错. 因此,只能无奈放弃了py2exe工具.转而使用pyinstaller.使用感受真的是甩…
大名鼎鼎的aiohttp,相信如果你学习Python或者爬虫的时候,肯定听说过这个东西.没听过也不要紧,今天看完文章,只要记住,aiohttp这个东西,在写爬虫的时候,很牛逼就行了. aiohttp 就是一个用 asyncio实现的 HTTP client/server. 你可以通过它来简单实现一个具有异步处理功能的 clients 和 servers. aiohttp同时还支持 Server WebSockets 和 Client WebSockets,让你使用起来更加简单. 今天,皮爷就带你…
一直想试着将自己的交易思路程序化,可惜困难重重 ,连第一步获取数据都要花很多精力,直到最近发现了Tushare,不仅使用非常便利,功能也无比强大,股票.期货.基金.财经新闻,甚至电影票房等都可以非常便捷的获取,更难得的是这么强大的存在居然是开源免费的,不得不说国人的开源项目越来越强大了!不废话了,简单介绍下用法: 一.安装 使用前提 安装Python 安装pandas lxml也是必须的,正常情况下安装了Anaconda后无须单独安装,如果没有可执行:pip install lxml 建议安装A…
如果在一台机器上,想开发多个不同的项目,需要用到同一个包的不同版本,如果还在本地继续安装,在同一个目录下安装或者更新,其它的项目必须就无法运行了,怎么办呢? 解决方案:虚拟环境 虚拟环境可以搭建独立的python运行环境,使得单个项目的运行环境与其它项目互不影响 所有的虚拟环境,都位于/home/下的隐藏目录.virtualenvs下 准备: 要先安装pip 安装工具 安装虚拟环境virtualenv: pip install virtualenv 创建虚拟环境 : virtualenv [虚拟…
Pipenv旨在将最好的包管理机制(bundler, composer, npm, cargo, yarn等等)带到Python中去. 它会为你的项目自动创建和管理virtualenv,也会在安装和移除包时自动同步Pipfile,还生成了Pipfile.lock文件描述了固定版本,以便在生产环境中构建. Pipenv主要解决了以下问题: 我们不需要分开使用pip和virtualenv,现在他们被合并了. 维护requirements.txt有时也会遇到一些问题,Pipenv使用Pipfile和P…
先打开Shell的Debug-->Debugger调试, 然后点击程序的运行 点击Debug的step按钮查看每一步的结果…
​ 就在不久前,kite——那个能够自己编写python代码的AI,Python 之父 Guido van Rossum 使用之后,也发出了「really love」感叹,向大家墙裂推荐了这一高效工具.莫非程序员离“失业”又迈进了一步吗?要想知道这个答案,首先得看看kite的代码编写究竟能做到何种程度. ​ 1 什么是Kite 最新的kite是一款桌面应用程序,可以与现有的编辑器和终端进行集成化.并行运行,你可以将kite视为IDE的一个插件,它以大量的云端代码为基础,使用机器学习进行训练,从而…
一.Xpath是什么 XPath 是一门在 XML 文档中查找信息的语言.XPath 用于在 XML 文档中通过元素和属性进行导航. XPath 使用路径表达式在 XML 文档中进行导航 XPath 包含一个标准函数库 XPath 是 XSLT 中的主要元素 XPath 是一个 W3C 标准 二.XPath在python内容提取中的常用规则 1.选取节点 XPath 使用路径表达式在 XML 文档中选取节点.节点是通过沿着路径或者 step 来选取的. 下面列出了最有用的路径表达式: 表达式 描…
#!/usr/bin/env python # -*- coding: utf-8 -*- import requests from pyquery import PyQuery as pq url = 'http://www.136book.com/huaqiangu/' headers = { 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_4) AppleWebKit/537.36' ' (KHTML, like Ge…
1. 前言 在日常工作中,为了更直观的发现数据中隐藏的规律,察觉到变量之间的互动关系,人们常常借助可视化帮助我们更好的给他人解释现象,做到一图胜千文的说明效果. 在Python中,常见的数据可视化库有: matplotlib 是最常见的2维库,可以算作可视化的必备技能库,由于matplotlib是比较底层的库,api很多,代码学起来不太容易. seaborn 是建构于matplotlib基础上,能满足绝大多数可视化需求.更特殊的需求还是需要学习matplotlib. 上述两个库都是静态的可视化库…
pipenv 参考官网:https://pipenv.pypa.io/ pipenv 是一款比较新的包管理工具,其借鉴了 javascript 的 npm 和 PHP 的 composer 等理念,通过一个依赖描述文件 Pipfile 来安装和管理依赖,以达到协同开发的目的.如果你熟悉 npm 或者 composer 的话,那 pipenv 正合你胃口.pipenv 其实整合了 pip 和 virtualenv 等库,在其上推出了更便捷的使用方式. 1.安装pipenv 直接使用pip命令安装…
一.简介 Supervisor 是一款 Python 开发的进程管理系统,允许用户监视和控制 Linux 上的进程,能将一个普通命令行进程变为后台守护进程,异常退出时能自动重启 详细介绍查阅:Supervisor Introduction 二.安装 Supervisor 支持 Linux 和 Mac,不支持 Windows 本文系统为: centos,supervisor==4.2.4 pip3 install supervisor 安装完成后,在Python bin目录下面会有这样几个文件.…
一.安装 pip install hyperopt 二.说明 Hyperopt提供了一个优化接口,这个接口接受一个评估函数和参数空间,能计算出参数空间内的一个点的损失函数值.用户还要指定空间内参数的分布情况. Hyheropt四个重要的因素:指定需要最小化的函数,搜索的空间,采样的数据集(trails database)(可选),搜索的算法(可选). 首先,定义一个目标函数,接受一个变量,计算后返回一个函数的损失值,比如要最小化函数q(x,y) = x**2 + y**2 指定搜索的算法,算法也…
一.常见错误: 1.漏了末尾的冒号,如 if语句,循环语句,定义函数 2.缩进错误,该缩进的时候没有缩进 3.把英文符号写成中文符号,如:  ' ' () , 4.字符串拼接,把字符串和数字拼接一起 5.没有定义变量 6.“==”与“=”混用 7.缩进Tab键与空格混用 二.知识不熟练造成bug: 如:1.列表的索引是从0开始的,不是从1开始的: 2.append()函数每次只能添加一个参数,如a.append('A') 三.思路不清晰造成bug: 方法:1.用 # 把感觉会出问题的代码段注释掉…
最近在github上冒出了一个python的debug神器PySnooper,号称在debug时可以消灭print.那么该工具有哪些优点呢,如何使用该工具呢.本文就介绍该工具的优缺点和使用方式. 前言 使用python开发过程中,总是避免不了debug.传统的debug过程大致分为两种: a)断点+单步调试. 断点+单步调试估计是用的最多的了,对于较大型项目来说,其流程大致为:先在关键的代码位置加上print语句,通过分析print的值将范围缩小,这个过程可能需要重复多次,使用print的方法,…
pysnooper是代码debug神器,比无限low print好很多和也比日志debug好一些,比断点调试也好一些,这个很犀利的装饰器. https://www.toutiao.com/a6682957535856558606/ DeBug Python代码全靠print函数?换用这个一天2K+Star的工具吧 对其修改了2点.1.由于部署一般是linux,开发是windows,所以可以禁止linux上使用调试,相同的代码在linux上运行,调试装饰器自动失效,因为忘了注释掉装饰器,在生产调试…
"武林至尊,宝刀屠龙,号令天下,莫敢不从,倚天不出,谁与争锋",这是神器.不过今天要说的python中的"神器"就没有这么厉害了,这里要说的"神器"其实就是名称里面带了个"器"的,如下: 列表解析器 迭代器 生成器 装饰器 列表解析器 现在遇到了这样一个问题需要解决:"有一个数字的列表,要求对该列表中的奇数乘以2,返回处理完成后的列表(不改变原来列表的顺序,仅对列表中的奇数乘以2)",比较传统的方法可能会是…
debug是编码是非常重要的调试技巧,通过在运行过程中设置断点,帮助开发人员更好的理解运行过程. Python中debug不像JAVA或者C++那样在IDE中设置断点那么直观. Python的debug有两种方式:  1.在命令行中运行, 2.在脚本当中运行.两种方式都需要使用pdb模块. 方式一:在命令行中运行 $ python -m pdb my_script.py  方式二:脚本中运行 在需要设置断点的地方,插入方法 pdb.set_trace() import pdb def make_…
进阶Python:装饰器 前言 前段时间我发了一篇讲解Python调试工具PySnooper的文章,在那篇文章开始一部分我简单的介绍了一下装饰器,文章发出之后有几位同学说"终于了解装饰器的用法了",可见有不少同学对装饰器感兴趣.但是那篇文章主要的目的是在介绍PySnooper,所以没有太深入的展开讲解装饰器,于是在这里就详细的介绍一些装饰器的使用. 装饰器是Python中非常重要的一个概念,如果你会Python的基本语法,你可以写出能够跑通的代码,但是如果你想写出高效.简洁的代码,我认…
1.7 Python集成开发工具(IDE)推荐 1.7.1 Notepad++ Notepad++是Windows操作系统下的一套文本编辑器(软件版权许可证: GPL),有完整的中文化接口及支持多国语言编写的功能. Notepad++功能比 Windows 中的 Notepad(记事本)强大,除了可以用来制作一般的纯文字说明文件,也十分适合编写计算机程序代码.Notepad++ 不仅有语法高亮度显示,也有语法折叠功能,并且支持宏以及扩充基本功能的外挂模组. Notepad++是免费软件,可以免费…