首页主机资讯Ubuntu上Python如何进行调试

Ubuntu上Python如何进行调试

时间2025-10-01 11:21:04发布访客分类主机资讯浏览907
导读:Ubuntu上Python调试的常用方法 1. 使用内置pdb模块(命令行调试) pdb是Python标准库中的调试工具,无需额外安装,适合快速定位代码问题。 设置断点:在代码中插入import pdb; pdb.set_trace( ,...

Ubuntu上Python调试的常用方法

1. 使用内置pdb模块(命令行调试)

pdb是Python标准库中的调试工具,无需额外安装,适合快速定位代码问题。

  • 设置断点:在代码中插入import pdb; pdb.set_trace(),程序执行到该行会暂停并进入交互模式。
  • 常用命令
    • l(list):显示当前代码行及上下文;
    • n(next):执行下一行(不进入函数);
    • s(step):进入函数调用;
    • c(continue):继续执行至下一个断点;
    • p < 变量> (print):打印变量值;
    • q(quit):退出调试器。

2. 使用IDE内置调试器(图形化调试)

PyCharm

  • 安装与配置:通过snap install pycharm-community --classic安装社区版;打开项目后,点击右上角“Add Configuration”,选择“Python”,设置脚本路径和工作目录。
  • 调试步骤:在代码行号旁点击设置断点,点击工具栏“调试”按钮(虫子图标),程序暂停后可通过调试面板查看变量、调用栈,或使用工具栏按钮单步执行。

Visual Studio Code(VS Code)

  • 准备步骤:安装Python扩展(Microsoft官方扩展);在项目根目录创建.vscode/launch.json文件,配置如下:
    {
    
      "version": "0.2.0",
      "configurations": [
        {
    
          "name": "Python: Current File",
          "type": "python",
          "request": "launch",
          "program": "${
    file}
    ",
          "console": "integratedTerminal"
        }
    
      ]
    }
        
    
  • 调试流程:在代码行号旁点击设置断点,点击左侧“调试图标”(虫子图标),再点击绿色“开始调试”按钮,即可通过调试工具栏控制执行并查看变量。

3. 使用第三方增强调试工具

ipdb(增强版pdb)

ipdb在pdb基础上增加了语法高亮、自动补全等功能,提升调试体验。

  • 安装与使用:通过pip install ipdb安装;在代码中用import ipdb; ipdb.set_trace()替换pdb断点,启动后会进入增强的交互模式。

PySnooper(自动日志记录)

PySnooper可自动记录函数执行过程中的变量变化,无需手动插入print语句。

  • 安装与使用:通过pip install pysnooper安装;在函数前添加装饰器@pysnooper.snoop(),运行程序后会输出详细的执行日志(包括变量值、执行行号)。

4. 使用logging模块(结构化日志)

logging模块适合长期记录程序运行状态,便于后续分析。

  • 基本配置:通过logging.basicConfig设置日志级别(如DEBUG)和格式,代码中用logging.debug()输出调试信息。
  • 示例代码
    import logging
    logging.basicConfig(level=logging.DEBUG, format='%(asctime)s - %(levelname)s - %(message)s')
    def divide(a, b):
        logging.debug(f'Dividing {
    a}
     by {
    b}
        ')
        return a / b
    result = divide(10, 2)
    
    运行后会输出类似2025-09-25 10:00:00 - DEBUG - Dividing 10 by 2的日志信息。

5. 使用assert语句(快速检查条件)

assert语句用于检查代码中的关键条件,若条件不满足则抛出AssertionError,适合快速定位逻辑错误。

  • 示例代码
    def calculate_discount(price, discount):
        assert discount >
        = 0 and discount <
        = 1, "Discount must be between 0 and 1"
        return price * (1 - discount)
    result = calculate_discount(100, 1.5)  # 触发AssertionError
    

6. 使用gdb调试C扩展

若Python程序使用了C/C++扩展(如通过Cython编写的模块),可使用gdb调试底层代码。

  • 安装与使用:通过sudo apt-get install gdb python-dbg安装gdb和python调试符号;启动gdb并附加到Python进程(sudo gdb -p < pid> ),使用py-bt命令查看Python调用栈,结合C调试命令(如bt查看C栈)定位问题。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Ubuntu上Python如何进行调试
本文地址: https://pptw.com/jishu/715645.html
Python依赖库Ubuntu如何安装 ubuntu php-fpm更新后如何兼容旧代码

游客 回复需填写必要信息