如何在脚本中检查是否设置了Python调试选项

11 投票
2 回答
16851 浏览
提问于 2025-04-15 15:12

如果我在调试模式下,我想做一些和不在调试模式时不一样的事情。

if DEBUG:
    STORED_DATA_FILE = os.path.join(TEMP_DIR, 'store.dat')
    LOG_LEVEL = logging.DEBUG
    print "debug mode"
else:
    STORED_DATA_FILE = os.path.join(SCRIPT_PATH, 'store.dat')
    LOG_LEVEL = logging.INFO
    print "not debug mode"

那么:

python script.py
not debug mode

python -d script.py
debug mode

我该怎么判断自己是否在调试模式呢?肯定不是用 __debug__ 这个变量。

2 个回答

14

你可以用 python -O 这个命令来配合 __debug__ 这个变量。

这里的 -O 是“优化”的意思,所以 __debug__ 这个变量会变成假,也就是不再进行调试。

-d 则是开启解析器的调试功能,这个不是你想要的。

9

解析器调试模式可以通过命令行选项 -d 或者设置 PYTHONDEBUG 环境变量来开启。从 Python 2.6 开始,这个模式会在 sys.flags.debug 中显示出来。不过,你确定这就是你想要的东西吗?

撰写回答