如何使用Automator运行python脚本以查看调试/错误消息?
当前,如果我使用如何使用Automator运行python脚本以查看调试/错误消息?,python,shell,terminal,automator,Python,Shell,Terminal,Automator,当前,如果我使用运行shell脚本并在那里启动python脚本: /usr/bin/python /Users/myuser/script.py "$1" 如果由于发生异常而导致脚本执行失败,Automator将返回错误,但不会显示任何内容: Run Shell Script failed - 1 error Traceback (most recent call last): 有没有办法运行shell脚本来查看所有调试消息(或者,在那里运行Terminal并运行python脚本)?我认为最
运行shell脚本
并在那里启动python脚本:
/usr/bin/python /Users/myuser/script.py "$1"
如果由于发生异常而导致脚本执行失败,Automator将返回错误,但不会显示任何内容:
Run Shell Script failed - 1 error
Traceback (most recent call last):
有没有办法运行shell脚本来查看所有调试消息(或者,在那里运行Terminal并运行python脚本)?我认为最好的方法是使用python调试器:
import pdb
pdb.set_trace()
在py脚本中
更多信息请点击此处:
当发生错误时,程序执行停止,输出被错误的缩写版本覆盖(该版本不提供有用信息) 例如,从运行错误代码只会显示以下内容: 您需要捕获所有错误以防止这种情况发生 使用
尝试:。。。除了
:
try:
l = [[1, 2, 3], [4, 5, 6], [7], [8, 9]]
reduce(lambda x, y: x.extend(y), l)
except Exception as error:
print(repr(error))
您将打印出以下内容:
AttributeError(“'NoneType'对象没有属性'extend'”)
如果需要更多信息,可以调整代码:
from sys import exc_info
from traceback import extract_tb
try:
l = [[1, 2, 3], [4, 5, 6], [7], [8, 9]]
reduce(lambda x, y: x.extend(y), l)
except Exception as error:
print(repr(error))
print("Line number: ", extract_tb(exc_info()[2])[0][1])
印刷品:
AttributeError(“非类型”对象没有属性“扩展”)(“行号:”,5)