python - 为`traceback.format_exc()`构建快捷方式
问题描述
所以我这样使用traceback.format_exc()
:
try:
# Some code
except:
traceback_msg = '%s' % traceback.format_exc()
print(traceback_msg)
# Doing some stuff with it
经常在我的代码中将其输出到其他文件/流中,并且通过编写代码我厌倦了继续输入它。有没有一种简单的方法来定义一个全局快捷方式/异常处理程序,它可以保持关注并且易于从各个地方调用?
解决方案
您可以在目录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 时运行,尽管在此示例中未使用。
推荐阅读
- reporting-services - 自动报告从一个切换到另一个
- c# - .Net Core (2.1) 用户会话设置
- wordpress - WordPress 插件 – 无需 PHP 即可保存额外的图像元数据?
- python - 如何使用熊猫中另一个数据框的值更新一个数据框
- java - Eclipse IDE 死代码警告有两个条件——如何抑制它?
- django - 如何修复 Django 中的“找不到页面(404)”错误?
- python - 我的 anaconda 导航器无法启动。(Windows 10),即使在更新和重新安装之后
- c++ - 我可以获得多个链式函数调用的返回类型吗?
- oauth - OAuth2:是否与访问令牌一起更新刷新令牌?
- javascript - 从实例化对象到外部范围的变量引用如何在 NodeJS 中工作