调试Ubuntu Nautilus中Python脚本的方法
在写一个Nautilus脚本(比如用Python写的)时,我知道有两种基本的调试方法:
- 使用弹出窗口(比如Zenity)作为“打印”语句。
- 把错误信息和正常输出保存到文本文件中,以便后续查看。
这些方法效果还不错,但我觉得可能还有更有效的方法我不知道。有没有人能推荐其他的方法呢?
编辑:
背景:我在寻找从Ubuntu的Nautilus右键菜单启动的Python脚本的调试方法。
使用cedric的建议,重新启动nautilus并加上--no-desktop选项,这样错误信息和正常输出就能在终端窗口中看到。不过,这个终端似乎不能用作调试的pdb控制台(它好像只能输出信息)。
在我寻找从右键菜单启动脚本时获取输入和输出的方法时,发现了我下面答案中列出的信息。
(另外,虽然我同意单元测试和日志记录是最佳实践,但我认为互动调试在小脚本中仍然有其用武之地。)
5 个回答
为了方便查看输出结果并与脚本进行互动,我把我的脚本分成了两个文件(可以参考这个问题 如何在保持打开状态的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")
当然,这只是为了基本的调试,但可能对某些人有用。
调试工具(比如pdb或Winpdb)
使用Python的日志模块
使用调试装饰器 - 具体可以参考 这个链接
更多实用的小技巧可以查看 如何在Python中写一个可调试的装饰器?
你想要的其实就是查看你的脚本输出,这可以通过重新启动nautilus并加上--no-desktop这个选项来实现:
$ nautilus -q
$ nautilus --no-desktop
这样一来,你就能看到你的脚本或者python解释器产生的任何输出(包括错误信息和正常输出)。这应该会很有用...