gpt4 book ai didi

python - 判断 python 是否处于 -i 模式

转载 作者:太空狗 更新时间:2023-10-30 01:10:41 24 4
gpt4 key购买 nike

如何判断 python 是否已使用 -i 标志启动?

根据 the docs , 你可以检查 os.environ 中的 PYTHONINSPECT 变量,它是 -i 的等价物。但显然它的工作方式不同。

作品:

$ PYTHONINSPECT=1 python -c 'import os; print os.environ["PYTHONINSPECT"]'

不起作用:

$ python -i -c 'import os; print os.environ["PYTHONINSPECT"]'

我问的原因是因为我有一个脚本,如果某些条件失败,它会调用 sys.exit(-1)。这很好,但有时我想使用 -i 手动调试它。我想我可以学习使用“PYTHONINSPECT=1 python”而不是“python -i”,但如果有一个通用的方法来做这件事就好了。

最佳答案

如何以编程方式设置检查模式

答案来自the link @Jweede provided是不精确的。应该是:

import os
os.environ['PYTHONINSPECT'] = '1'

如何检索是否设置了交互/检查标志

只是 @Brian's answer 的另一个变体:

import os
from ctypes import POINTER, c_int, cast, pythonapi

def in_interactive_inspect_mode():
"""Whether '-i' option is present or PYTHONINSPECT is not empty."""
if os.environ.get('PYTHONINSPECT'): return True
iflag_ptr = cast(pythonapi.Py_InteractiveFlag, POINTER(c_int))
#NOTE: in Python 2.6+ ctypes.pythonapi.Py_InspectFlag > 0
# when PYTHONINSPECT set or '-i' is present
return iflag_ptr.contents.value != 0

参见 Python 的 main.c .

关于python - 判断 python 是否处于 -i 模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/640389/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com