Python程序高效地调试

现在我在debugpython程序就只是简单在有可能错误的地方print出来看一下,不知道python有没像c++的一些IDE一样有单步调试这类的工具?或者说各位python大神一般是怎么debug

大家好,又见面了,我是全栈君,今天给大家准备了Idea注册码。

现在我在debug python程序就只是简单在有可能错误的地方print出来看一下,不知道python有没像c++的一些IDE一样有单步调试这类的工具?或者说各位python大神一般是怎么debug自己的python程序的?

 

应该用过 IPython 吧?想象一下,抛出异常时自动把你带到 IPython Shell 是不是很开心?而且和普通的IPython不同,这个时候可以调用 p (print), up(up stack), down(down stack) 之类的命令。还能创建临时变量,执行任意函数。

事实上这是可以实现的, 而且很简单,不过你要先安装 IPython。然后把以下代码保存为 `crash_on_ipy.py`

import sys

class ExceptionHook:
    instance = None

    def __call__(self, *args, **kwargs):
        if self.instance is None:
            from IPython.core import ultratb
            self.instance = ultratb.FormattedTB(mode='Plain',
                 color_scheme='Linux', call_pdb=1)
        return self.instance(*args, **kwargs)

sys.excepthook = ExceptionHook()
#何问起 hovertree.com

然后在你的项目代码某个地方 import crash_on_ipy 就可以了。

Python程序高效地调试

这个方法不需要 IDE.

推荐:
http://www.cnblogs.com/roucheng/p/pythonstring.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/120310.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • stream的groupingby_handlemapping

    stream的groupingby_handlemappinggroupingBy用于分组,toMap用于list转map测试代码:1.建一个实体类,测试中用packagecom.xhx.java;/***xuhaixing*2018/7/2021:43**/publicclassStudent{privateStringname;privateStringsex;priva…

    2022年8月20日
    7
  • C#中保存Gif文件设置透明无效果

    C#中保存Gif文件设置透明无效果在C#中使用Graphics.Clear(Color.Transparent)生成gif格式透明文件时,设置透明不起作用。使用Bitmap.MakeTransparent方法同样也不能使gif文件透明。这两个问题也是微软的设计使然,和gif文件格式有关系。如果要在c#中编程实现透明色,必须另写代码,下面是一位老外的代码/// <summary>/// Make the i…

    2022年7月21日
    16
  • 关于安装busybox问题

    关于安装busybox问题我的手机是小米5安装busybox1.首先要手机要root2.然后下载busybox安装器(这个容易找)3.解锁system分区(可以下载syslock,这软件可以解锁system文件)点击下载syslock如果不下载system,会安装失败;4.解锁重启后就可以安装了…

    2022年7月25日
    14
  • PostgreSQL LSN详解

    PostgreSQL LSN详解PostgreSQLLS 即 Logsequencen 日志序列号 这是 WAL 日志唯一的 全局的标识 那么 pg 中 LSN 究竟有什么作用呢 我们都知道 wal 日志中写入是有顺序的 比方说一条记录是先加 100 再乘 200 如果顺序错乱变成先乘 200 再加 100 那结果可是差之千里了 所以必须得记录 wal 日志的写入顺序 而 LSN 就是负责这个的 给每条产生的 wal 日志记录一个编号 熟悉 Oracle 的朋友可能清楚 这和 Oracle 中 redo 的 LRBA 和 HRBA 有点类似 LSN 和 WAL 我们先来看下 LSN

    2026年2月6日
    0
  • directshow是什么意思_showcased

    directshow是什么意思_showcased1.http://www.360doc.com/userhome.aspx?userid=2150347&cid=7#

    2022年10月12日
    4
  • from lxml import etree报错

    from lxml import etree报错写一个小型的爬虫懒得用 scrapy 主要是 scrapy 不太好装 直接使用了 requests 请求 但是要解析数据 那么问题来了问题 1 使用的是 python3 7 的环境 解析数据要用 xpath 系统是 macpipinstal 一分钟后 下载成功开始写代码 fromlxmlimpo 挂了 lxml 中竟然没有 etree 模块换个方法

    2026年2月4日
    1

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号