为 `traceback.format_exc()` 构建快捷方式

Build shortcut for `traceback.format_exc()`

所以我这样使用traceback.format_exc()

try:
   # Some code
except:
   traceback_msg = '%s' % traceback.format_exc()
   print(traceback_msg)
   # Doing some stuff with it

在我的代码中经常将它输出到一个额外的 file/stream 并且通过编写代码我厌倦了继续输入它。有没有一种简单的方法来定义一个全局的 shortcut/ExceptionHandler 来保持关心并且很容易从各个地方调用?

您可以使用目录 PYTHONPATH 中的模块,该模块以短名称导入(并且它本身也有一个短名称)。

在您的设置脚本中设置环境变量 PYTHONPATH 以指向一个目录,例如在 .bashrc 在 Linux 中,放

export PYTHONPATH=/path/to/my_dir:$PYTHONPATH

(如果任何值已经存在,您可能想要进行测试,如果不存在,请在此处取消冒号,但这并不重要。)

并创建 /path/to/my_dir/tb.py 包含

from traceback import format_exec as fe

然后你可以进行交互,例如:

>>> import tb
>>> try:
...    a = 1 / 0
... except:
...    msg = tb.fe()
...    print(">>>", msg)

给予

>>> Traceback (most recent call last):
  File "<stdin>", line 2, in <module>
ZeroDivisionError: division by zero

请记住,尽管您的 tb.py 可能会与您尝试使用的另一个也称为 tb.py 的模块发生冲突。也许为了安全起见,不要一直设置 PYTHONPATH,但是之后(再次以 Linux 为例),在您的 .bashrc.

中设置一个别名

alias p='env PYTHONPATH=/path/to/my_dir:$PYTHONPATH python'

以便仅在您使用 p 别名启动 python 时设置它。

还有一个环境变量 PYTHONSTARTUP,您可以将其指向一个脚本,该脚本会在您启动时运行 python,尽管在此示例中未使用。