From 8f9f466505960a6cf83b58683cbc98e5d4abba7a Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Sun, 1 Aug 2010 08:35:29 +0000 Subject: [PATCH] #1690103: fix initial namespace for code run with trace.main(). --- Lib/trace.py | 9 ++++++++- Misc/NEWS | 2 ++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/Lib/trace.py b/Lib/trace.py index 077cdc1e341..236ea49dd9d 100644 --- a/Lib/trace.py +++ b/Lib/trace.py @@ -799,7 +799,14 @@ def main(argv=None): try: with open(progname) as fp: code = compile(fp.read(), progname, 'exec') - t.run(code) + # try to emulate __main__ namespace as much as possible + globs = { + '__file__': progname, + '__name__': '__main__', + '__package__': None, + '__cached__': None, + } + t.runctx(code, globs, globs) except IOError as err: _err_exit("Cannot run file %r because: %s" % (sys.argv[0], err)) except SystemExit: diff --git a/Misc/NEWS b/Misc/NEWS index c342d903e76..52cbabd0d95 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -15,6 +15,8 @@ Core and Builtins Library ------- +- Issue #1690103: Fix initial namespace for code run with trace.main(). + - Issue #7395: Fix tracebacks in pstats interactive browser. - Issue #8230: Fix Lib/test/sortperf.py.