python开发中的小工具(持续更新)

一、调试(在Linux中)

在 Linux 上运行 Python 程序时,可以使用断点进行调试。Python 提供了内建的调试工具 pdb,通过它可以在代码中设置断点并进行逐步调试。以下是如何在 Linux 系统中使用 Python 和 pdb 调试代码的步骤:

1. 使用 pdb 设置断点

在你的 Python 代码中,导入 pdb 并使用 pdb.set_trace() 设置断点。例如:

import pdb

def some_function():
    a = 10
    b = 20
    pdb.set_trace()  # 断点位置
    result = a + b
    print(result)

some_function()

在运行时,代码将在 pdb.set_trace() 这一行暂停,进入交互式调试模式,你可以查看和修改变量值,逐行执行代码等。

2. 通过命令行运行 Python 程序

打开终端,进入你的 Python 脚本所在的目录,然后使用以下命令运行程序:

python3 your_script.py

当程序执行到 pdb.set_trace() 时,它会暂停并进入调试模式。你可以在终端中输入调试命令,例如:

  • n(next):执行下一行代码
  • s(step):进入函数内部
  • c(continue):继续执行代码直到下一个断点
  • q(quit):退出调试器

3. 使用 python -m pdb 运行脚本

你也可以在命令行中直接使用 python -m pdb 来运行 Python 脚本并进入调试模式:

python3 -m pdb your_script.py

这会自动将程序加载到调试器中,并允许你在程序执行期间逐步调试。

4. 调试时常用命令

  • l:显示当前位置附近的代码
  • p <variable>:打印变量的值
  • q:退出调试
  • h:查看帮助信息

二、pdb调试的增强版ipdb

安装 ipdb

首先,你需要安装 ipdb,可以通过以下命令来安装:

 
pip install ipdb

使用 ipdb

ipdb 的使用方法与 pdb 类似,但它提供了更多增强的功能。例如,你可以在代码中直接插入 ipdb.set_trace() 来设置断点,并且进入调试模式时,会有更丰富的交互体验。

示例代码
import ipdb

def test_function():
    a = 10
    b = 20
    ipdb.set_trace()  # 设置断点
    result = a + b
    print(result)

test_function()

运行程序

在终端中,直接运行你的 Python 脚本:

python3 your_script.py

程序执行到 ipdb.set_trace() 处会暂停,并进入交互式调试模式。

常用命令

ipdb 调试模式下,你可以使用多种命令来检查和控制程序的执行。以下是一些常用的命令:

  1. n:执行下一行代码(next),如果当前行有函数调用,则跳过函数内部。
  2. s:进入当前行代码中的函数(step)。
  3. c:继续执行代码,直到下一个断点(continue)。
  4. q:退出调试器并结束程序(quit)。
  5. p <variable>:打印变量的值(print),比如 p a 会输出变量 a 的值。
  6. l:查看当前代码行和周围的代码(list)。显示当前位置附近的源代码。
  7. h:查看帮助信息,列出所有调试命令。
  8. !<expression>:执行一个 Python 表达式,类似于 IPython 的行为。例如,你可以输入 !a + b 来直接执行表达式。

交互式调试界面

ipdb 提供了类似于 IPython 的环境,这意味着你可以在调试时使用强大的 Python 表达式评估、变量操作和多行代码编辑等功能。你可以通过 ! 执行复杂的 Python 表达式:

!print(a * b)

查看当前栈信息

ipdb 还提供了一些查看调用栈的功能:

  • wherew:显示当前的调用栈。
  • up:跳到上层栈帧。
  • down:跳到下层栈帧。

使用 ipdb 替代 pdb 的优势

  • 更丰富的交互功能,支持执行 Python 表达式、查看变量、动态修改代码等。
  • 提供了更好的代码高亮和调试界面。
  • 支持更复杂的命令,如执行多行代码、条件断点等。

三、conda环境

1.conda环境中更新python版本

conda install python=x.y

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值