aboutsummaryrefslogtreecommitdiffstats
path: root/setuptools/launch.py
diff options
context:
space:
mode:
Diffstat (limited to 'setuptools/launch.py')
-rw-r--r--setuptools/launch.py19
1 files changed, 13 insertions, 6 deletions
diff --git a/setuptools/launch.py b/setuptools/launch.py
index 68cce681..06e15e1e 100644
--- a/setuptools/launch.py
+++ b/setuptools/launch.py
@@ -10,19 +10,26 @@ import tokenize
import sys
-def load():
+def run():
"""
- Load the script in sys.argv[1] and run it as if it had
+ Run the script in sys.argv[1] as if it had
been invoked naturally.
"""
- globals()['__file__'] = sys.argv[1]
+ __builtins__
+ script_name = sys.argv[1]
+ namespace = dict(
+ __file__ = script_name,
+ __name__ = '__main__',
+ __doc__ = None,
+ )
sys.argv[:] = sys.argv[1:]
open_ = getattr(tokenize, 'open', open)
- script = open_(__file__).read()
+ script = open_(script_name).read()
norm_script = script.replace('\\r\\n', '\\n')
- return compile(norm_script, __file__, 'exec')
+ code = compile(norm_script, script_name, 'exec')
+ exec(code, namespace)
if __name__ == '__main__':
- exec(load())
+ run()