From: Georg Brandl Date: Sun, 1 Aug 2010 08:35:29 +0000 (+0000) Subject: #1690103: fix initial namespace for code run with trace.main(). X-Git-Tag: v3.2a2~575 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=8f9f466505960a6cf83b58683cbc98e5d4abba7a;p=python #1690103: fix initial namespace for code run with trace.main(). --- diff --git a/Lib/trace.py b/Lib/trace.py index 077cdc1e34..236ea49dd9 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 c342d903e7..52cbabd0d9 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.