调试Ubuntu Nautilus中Python脚本的方法

6 投票
5 回答
2996 浏览
提问于 2025-04-16 08:41

在写一个Nautilus脚本(比如用Python写的)时,我知道有两种基本的调试方法:

  1. 使用弹出窗口(比如Zenity)作为“打印”语句。
  2. 把错误信息和正常输出保存到文本文件中,以便后续查看。

这些方法效果还不错,但我觉得可能还有更有效的方法我不知道。有没有人能推荐其他的方法呢?

编辑:

背景:我在寻找从Ubuntu的Nautilus右键菜单启动的Python脚本的调试方法。

使用cedric的建议,重新启动nautilus并加上--no-desktop选项,这样错误信息和正常输出就能在终端窗口中看到。不过,这个终端似乎不能用作调试的pdb控制台(它好像只能输出信息)。

在我寻找从右键菜单启动脚本时获取输入和输出的方法时,发现了我下面答案中列出的信息。

(另外,虽然我同意单元测试和日志记录是最佳实践,但我认为互动调试在小脚本中仍然有其用武之地。)

5 个回答

3

为了方便查看输出结果并与脚本进行互动,我把我的脚本分成了两个文件(可以参考这个问题 如何在保持打开状态的gnome-terminal窗口中执行一个用Python写的nautilus脚本?):

  • ~/.local/share/nautilus/scripts/firstfile.sh 这个文件会打开一个终端,执行脚本,并且保持终端窗口打开:

    #!/bin/bash
    gnome-terminal -- bash -c "python3 ~/.local/share/nautilus/scripts/.secondfile.py; bash"
    
  • ~/.local/share/nautilus/scripts/.secondfile.py 这个文件包含了实际的Python脚本,并且在nautilus脚本菜单中是隐藏的:

    #!/usr/bin/python3
    print("Hello")
    

当然,这只是为了基本的调试,但可能对某些人有用。

3
  1. 调试工具(比如pdb或Winpdb)

  2. 使用Python的日志模块

  3. 使用调试装饰器 - 具体可以参考 这个链接

  4. 更多实用的小技巧可以查看 如何在Python中写一个可调试的装饰器?

10

你想要的其实就是查看你的脚本输出,这可以通过重新启动nautilus并加上--no-desktop这个选项来实现:

$ nautilus -q
$ nautilus --no-desktop

这样一来,你就能看到你的脚本或者python解释器产生的任何输出(包括错误信息和正常输出)。这应该会很有用...

撰写回答