Closed mtitov closed 1 year ago
Issue is due to that Polaris didn't export bash function __conda_exe
, that is located in set
only
__conda_activate ()
{
if [ -n "${CONDA_PS1_BACKUP:+x}" ]; then
PS1="$CONDA_PS1_BACKUP";
\unset CONDA_PS1_BACKUP;
fi;
\local ask_conda;
ask_conda="$(PS1="${PS1:-}" __conda_exe shell.posix "$@")" || \return;
\eval "$ask_conda";
__conda_hashr
}
__conda_exe ()
{
( __add_sys_prefix_to_path;
"$CONDA_EXE" $_CE_M $_CE_CONDA "$@" )
}
To compare with Summit - it doesn't use bash function __conda_exe
and uses env variable instead
__conda_activate ()
{
if [ -n "${CONDA_PS1_BACKUP:+x}" ]; then
PS1="$CONDA_PS1_BACKUP";
\unset CONDA_PS1_BACKUP;
fi;
\local cmd="$1";
shift;
\local ask_conda;
CONDA_INTERNAL_OLDPATH="${PATH}";
__add_sys_prefix_to_path;
ask_conda="$(PS1="$PS1" "$CONDA_EXE" $_CE_M $_CE_CONDA shell.posix "$cmd" "$@")" || \return $?;
rc=$?;
PATH="${CONDA_INTERNAL_OLDPATH}";
\eval "$ask_conda";
if [ $rc != 0 ]; then
\export PATH;
fi;
__conda_hashr
}
(*) could be the case of the conda
version and the way system loads conda
using module
@andre-merzky proposed to ensure that conda
-related bash functions are exported (see the corresponding PR)
for name in $(set | grep -e '^[^ ]*conda[^ ]* ()' | cut -f 1 -d ' ')
do
export -f $name
done
RADICAL stack 1.34-devel Using conda environment for runs on Polaris
agent.0.log
env.log
Attached
bs0_pre_0.sh
and current env after activating conda (module load conda; eval "$(conda shell.posix hook)"; conda activate rct
) -env.txt
bs0_pre_0.sh.txt env.txt