def run_script(args):
sys.argv = [args.script] + args.script_arguments
path = args.script
__main__.__file__ = path
try:
code = get_code(path)
except Exception as e:
traceback.print_exception(e.__class__, e, None, file=sys.stderr)
else:
try:
exec(code, __main__.__dict__)
except BaseException as e:
if not sys.flags.inspect and isinstance(e, SystemExit):
raise
elif PY2: # Python 2 produces tracebacks in mixed encoding (!)
etype, e, tb = sys.exc_info()
for line in traceback.format_exception(etype, e, tb.tb_next):
line = line.decode("utf-8", "replace")
try:
sys.stderr.write(line)
except UnicodeEncodeError:
line = line.encode(sys.stderr.encoding, "backslashreplace")
sys.stderr.write(line)
sys.stderr.flush() # is this needed?
else: # PY3
traceback.print_exception(e.__class__, e, e.__traceback__.tb_next, file=sys.stderr)
评论列表
文章目录