如何在脚本中检查是否设置了Python调试选项
如果我在调试模式下,我想做一些和不在调试模式时不一样的事情。
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
中显示出来。不过,你确定这就是你想要的东西吗?