Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Move sitecustomize.py into site-packages #3514

Open
wants to merge 3 commits into
base: 5.0.x
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 7 additions & 5 deletions easybuild/easyblocks/p/python.py
Original file line number Diff line number Diff line change
Expand Up @@ -142,9 +142,6 @@ def __init__(self, *args, **kwargs):

self.pyshortver = '.'.join(self.version.split('.')[:2])

# Used for EBPYTHONPREFIXES handler script
self.pythonpath = os.path.join(log_path(), 'python')

ext_defaults = {
# Use PYPI_SOURCE as the default for source_urls of extensions.
'source_urls': [PYPI_SOURCE],
Expand Down Expand Up @@ -504,7 +501,8 @@ def install_step(self):
symlink('pip' + self.pyshortver, pip_binary_path, use_abspath_source=False)

if self.cfg.get('ebpythonprefixes'):
write_file(os.path.join(self.installdir, self.pythonpath, 'sitecustomize.py'), SITECUSTOMIZE)
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)

# 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 Down Expand Up @@ -640,7 +638,11 @@ 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'):
txt += self.module_generator.prepend_paths(PYTHONPATH, self.pythonpath)
new_dir = os.path.join('lib', 'python' + self.pyshortver, 'site-packages')
old_dir = os.path.join(log_path(), 'python')
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

log_path isn't actually the correct path, see #3400
Maybe we can either use easybuild directly (if I remember that path correctly) or at least add a comment why log_path is abused here

if not os.path.exists(os.path.join(self.installdir, new_dir, 'sitecustomize.py')):
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Shall we maybe use a "constant" for this path similar to self.pythonpath to avoid repeating it in 2 locations that are quite a bit apart? I'd also check if the script exists in old_dir (or at least that folder) before adding the old path

txt += self.module_generator.prepend_paths(PYTHONPATH, old_dir)

return txt
Loading