Skip to content

Commit

Permalink
Remove backwards compat for module only rebuilds.
Browse files Browse the repository at this point in the history
Also uses property to clean up small code duplication
  • Loading branch information
Micket committed Dec 15, 2024
1 parent db0e35b commit f536db3
Showing 1 changed file with 7 additions and 18 deletions.
25 changes: 7 additions & 18 deletions easybuild/easyblocks/p/python.py
Original file line number Diff line number Diff line change
Expand Up @@ -478,6 +478,10 @@ def build_step(self, *args, **kwargs):

super(EB_Python, self).build_step(*args, **kwargs)

@property
def site_packages_path(self):
return os.path.join('lib', 'python' + self.pyshortver, 'site-packages')

def install_step(self):
"""Extend make install to make sure that the 'python' command is present."""

Expand All @@ -501,8 +505,7 @@ def install_step(self):
symlink('pip' + self.pyshortver, pip_binary_path, use_abspath_source=False)

if self.cfg.get('ebpythonprefixes'):
site_packages_path = os.path.join('lib', 'python' + self.pyshortver, 'site-packages')
write_file(os.path.join(self.installdir, site_packages_path, 'sitecustomize.py'), SITECUSTOMIZE)
write_file(os.path.join(self.installdir, self.site_packages_path, 'sitecustomize.py'), SITECUSTOMIZE)

# symlink lib/python*/lib-dynload to lib64/python*/lib-dynload if it doesn't exist;
# see https://github.com/easybuilders/easybuild-easyblocks/issues/1957
Expand All @@ -523,16 +526,15 @@ def install_step(self):
def _sanity_check_ebpythonprefixes(self):
"""Check that EBPYTHONPREFIXES works"""
temp_prefix = tempfile.mkdtemp(suffix='-tmp-prefix')
site_packages_path = os.path.join('lib', 'python' + self.pyshortver, 'site-packages')
temp_site_packages_path = os.path.join(temp_prefix, site_packages_path)
temp_site_packages_path = os.path.join(temp_prefix, self.site_packages_path)
mkdir(temp_site_packages_path, parents=True) # Must exist
res = run_shell_cmd("%s=%s python -c 'import sys; print(sys.path)'" % (EBPYTHONPREFIXES, temp_prefix))
out = res.output.strip()
# Output should be a list which we can evaluate directly
if not out.startswith('[') or not out.endswith(']'):
raise EasyBuildError("Unexpected output for sys.path: %s", out)
paths = eval(out)
base_site_packages_path = os.path.join(self.installdir, site_packages_path)
base_site_packages_path = os.path.join(self.installdir, self.site_packages_path)
try:
base_prefix_idx = paths.index(base_site_packages_path)
except ValueError:
Expand Down Expand Up @@ -633,16 +635,3 @@ def sanity_check_step(self):
raise EasyBuildError("Expected to find exactly one _tkinter*.so: %s", tkinter_so_hits)

super(EB_Python, self).sanity_check_step(custom_paths=custom_paths, custom_commands=custom_commands)

def make_module_extra(self, *args, **kwargs):
"""Add path to sitecustomize.py to $PYTHONPATH"""
txt = super(EB_Python, self).make_module_extra()

# Legacy support for existing installations doing "--rebuild --module-only"
if self.cfg.get('ebpythonprefixes'):
new_dir = os.path.join('lib', 'python' + self.pyshortver, 'site-packages')
old_dir = os.path.join(log_path(), 'python')
if not os.path.exists(os.path.join(self.installdir, new_dir, 'sitecustomize.py')):
txt += self.module_generator.prepend_paths(PYTHONPATH, old_dir)

return txt

0 comments on commit f536db3

Please sign in to comment.