From d7db8bf8f402130e3ce49603ead50de5f7a4d6b2 Mon Sep 17 00:00:00 2001 From: Hanno Schlichting Date: Fri, 17 Jul 2009 14:49:13 +0200 Subject: Packages required at build time where not fully present at install time. This closes #12. --HG-- branch : distribute extra : rebase_source : 178f508c83ecab9244064108d55ce840111a0e34 --- setuptools/sandbox.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'setuptools/sandbox.py') diff --git a/setuptools/sandbox.py b/setuptools/sandbox.py index 97865dd9..11c14938 100755 --- a/setuptools/sandbox.py +++ b/setuptools/sandbox.py @@ -6,10 +6,8 @@ from distutils.errors import DistutilsError __all__ = [ "AbstractSandbox", "DirectorySandbox", "SandboxViolation", "run_setup", ] - def run_setup(setup_script, args): """Run a distutils setup script, sandboxed in its directory""" - old_dir = os.getcwd() save_argv = sys.argv[:] save_path = sys.path[:] @@ -17,7 +15,7 @@ def run_setup(setup_script, args): temp_dir = os.path.join(setup_dir,'temp') if not os.path.isdir(temp_dir): os.makedirs(temp_dir) save_tmp = tempfile.tempdir - + save_modules = sys.modules.copy() try: tempfile.tempdir = temp_dir os.chdir(setup_dir) @@ -35,6 +33,9 @@ def run_setup(setup_script, args): raise # Normal exit, just return finally: + sys.modules.update(save_modules) + for key in list(sys.modules): + if key not in save_modules: del sys.modules[key] os.chdir(old_dir) sys.path[:] = save_path sys.argv[:] = save_argv -- cgit v1.2.3