From 0026d60b607f4e6ab67026dfe1126cfcc6afe1c4 Mon Sep 17 00:00:00 2001 From: Massimiliano Culpo Date: Tue, 3 Aug 2021 16:53:40 +0200 Subject: Test bootstrapping in a workflow (#25138) Add a workflow to test bootstrapping clingo on different platforms so that we can detect changes that break it. Compute `site_packages_dir` in `bootstrap.py` as it was before #24095, until we figure a better way to override that attribute. --- lib/spack/spack/bootstrap.py | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) (limited to 'lib') diff --git a/lib/spack/spack/bootstrap.py b/lib/spack/spack/bootstrap.py index 92bbb2fa42..09088c3eb6 100644 --- a/lib/spack/spack/bootstrap.py +++ b/lib/spack/spack/bootstrap.py @@ -92,15 +92,19 @@ def make_module_available(module, spec=None, install=False): installed_specs = spack.store.db.query(spec, installed=True) for ispec in installed_specs: - # TODO: make sure run-environment is appropriate - module_path = ispec['python'].package.get_python_lib(prefix=ispec.prefix) + lib_spd = ispec['python'].package.default_site_packages_dir + lib64_spd = lib_spd.replace('lib/', 'lib64/') + module_paths = [ + os.path.join(ispec.prefix, lib_spd), + os.path.join(ispec.prefix, lib64_spd) + ] try: - sys.path.append(module_path) + sys.path.extend(module_paths) __import__(module) return except ImportError: tty.warn("Spec %s did not provide module %s" % (ispec, module)) - sys.path = sys.path[:-1] + sys.path = sys.path[:-2] def _raise_error(module_name, module_spec): error_msg = 'cannot import module "{0}"'.format(module_name) @@ -117,13 +121,18 @@ def make_module_available(module, spec=None, install=False): spec.concretize() spec.package.do_install() - module_path = spec['python'].package.get_python_lib(prefix=spec.prefix) + lib_spd = spec['python'].package.default_site_packages_dir + lib64_spd = lib_spd.replace('lib/', 'lib64/') + module_paths = [ + os.path.join(spec.prefix, lib_spd), + os.path.join(spec.prefix, lib64_spd) + ] try: - sys.path.append(module_path) + sys.path.extend(module_paths) __import__(module) return except ImportError: - sys.path = sys.path[:-1] + sys.path = sys.path[:-2] _raise_error(module, spec) -- cgit v1.2.3-70-g09d2