diff --git a/lmod/ipython/startup/lmod_python_fix.py b/lmod/ipython/startup/lmod_python_fix.py new file mode 100644 index 0000000..39c91a3 --- /dev/null +++ b/lmod/ipython/startup/lmod_python_fix.py @@ -0,0 +1,28 @@ +# -*- python -*- +#from __future__ import print_function +#from subprocess import PIPE, Popen +import os, sys + +sys.path.append('/shared/apps/common/lmod/current/init') + +from env_modules_python import module as lmod_module + +def module(command, *arguments): + lmod_module(command, *arguments) + sys.path = os.environ.get('PYTHONPATH').split(':') + sys.path + manual_ld_library_dir = os.environ.get('LMOD_MANUAL_LD_LIBRARY_PATH') + + for search_path in os.getenv('LD_LIBRARY_PATH').split(':')[::-1]: + if not os.path.isdir(search_path): + continue + if search_path == manual_ld_library_dir: + continue + + for f in os.listdir(search_path): + if '.so' in f: + src = f'{search_path}/{f}' + tgt = f'{manual_ld_library_dir}/{f}' + if os.path.islink(tgt): + os.unlink(tgt) + + os.symlink(src, tgt)