From b7baeb542d08eff79e543cdfb62171a08cab502c Mon Sep 17 00:00:00 2001 From: Massimiliano Culpo Date: Mon, 12 Feb 2018 08:08:45 +0100 Subject: [PATCH] Set a default python that is consistent with the libraries in PYTHONHOME (#7157) fixes #7128 Before this PR packages that were indirectly dependent on python might have failed due to inconsistency between the python found in the environment and the standard libraries set in PYTHONHOME --- var/spack/repos/builtin/packages/python/package.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/var/spack/repos/builtin/packages/python/package.py b/var/spack/repos/builtin/packages/python/package.py index 34b6fb2bad..a3ad52df89 100644 --- a/var/spack/repos/builtin/packages/python/package.py +++ b/var/spack/repos/builtin/packages/python/package.py @@ -511,7 +511,12 @@ def setup_dependent_environment(self, spack_env, run_env, dependent_spec): """Set PYTHONPATH to include the site-packages directory for the extension and any other python extensions it depends on.""" + # If we set PYTHONHOME, we must also ensure that the corresponding + # python is found in the build environment. This to prevent cases + # where a system provided python is run against the standard libraries + # of a Spack built python. See issue #7128 spack_env.set('PYTHONHOME', self.home) + spack_env.prepend_path('PATH', os.path.dirname(self.command.path)) python_paths = [] for d in dependent_spec.traverse(