目前,如果我使用Run shell script
并在那里启动python脚本:
/usr/bin/python /Users/myuser/script.py "$1"
如果由于发生异常导致脚本执行失败,Automator将返回错误,该错误无效:
Run Shell Script failed - 1 error
Traceback (most recent call last):
有没有办法运行shell脚本来查看所有调试消息(或者,运行终端并在那里运行python脚本)?
答案 0 :(得分:0)
我相信你最好的方法是使用Python调试器:
import pdb
pdb.set_trace()
在你的py脚本中。
此处提供更多信息:
答案 1 :(得分:0)
发生错误时,程序执行停止,输出被错误的缩写版本覆盖(没有提供有用的信息)。
例如,从here运行错误代码只会向您显示:
您需要捕获所有错误以防止这种情况发生。
使用try: ... except
:
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(“'NoneType'对象没有属性'extend'”,)
('行号:',5)