Jost Do It.

그냥 IT해.

서버 및 환경/Utils

[conda] bash script에서 conda 명령어가 작동하지 않을 때

그냥하Jo. 2024. 2. 21. 13:22
반응형

문제 상황

아나콘다를 설치하고 command 창에서는 conda 명령어가 동작하는데 script 내에서는 conda command를 찾을 수 없다는 에러가 나왔다.

test.sh: line 2: conda: command not found

 

 

문제 원인

conda 명령어는 bash function인데, shell 내에서는 해당 bash function에 대한 정보가 없기 때문에 발생하는 에러다.

서버에 로그인하면 .bashrc가 실행되는데 .bashrc에는 conda function에 대한 initialize가되어 커맨드창에서는 conda 함수를 사용할 수 있다.

아래는 .bashrc에 선언된 conda initialize 명령이다.

[...]

# >>> conda initialize >>>
# !! Contents within this block are managed by 'conda init' !!
__conda_setup="$('/opt/conda/bin/conda' 'shell.bash' 'hook' 2> /dev/null)"
if [ $? -eq 0 ]; then
    eval "$__conda_setup"
else
    if [ -f "/opt/conda/etc/profile.d/conda.sh" ]; then
        . "/opt/conda/etc/profile.d/conda.sh"
    else
        export PATH="/opt/conda/bin:$PATH"
    fi
fi
unset __conda_setup
# <<< conda initialize <<<

 

해결 방법

개별 shell script에서는 conda function 정보가 없기 때문에 conda 함수를 사용하기 전 아래와 같이 선언해줘야 한다.

source /opt/anaconda/etc/profile.d/conda.sh
conda activate test

[...]

 

반응형