728x90
우분투 터미널에서 exec -it로 접속한 도커 컨테이너에서는 pip 명령어가 제대로 작동하는데 vscode에서 attach한 도커 컨테이너에서는 pip 명령어가 동작하지 않고
bash: pip3: command not found
이런 에러가 발생할 때가 있다.
vscode에서 바라보는 PATH와 터미널에서 접속한 컨테이너의 PATH가 일치하지 않기 때문에 일어나는 문제이다.
echo $PATH
vscode에서 위 명령어를 이용해 PATH를 출력하면 다음과 같이 나올 것이다.
root/.vscode-server/bin/8b3775030ed1a69b13e4f4c628c612102e30a681/bin/remote-cli:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
하지만 터미널에서 접속한 컨테이너에서는 아래처럼 나온다.
usr/local/nvidia/bin:/usr/local/cuda/bin:/opt/conda/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
이 PATH는 사용하는 컨테이너의 도커 파일에서 지정한 PATH로 vscode에서 바라보는 PATH와 다른 것을 볼 수 있다.
때문에 터미널에서 pip도 설치하고 이것저것 설치해도 vscode에서 설치한 것들을 쓰려고 하면 다른 곳을 바라보고 있기 때문에 명령어들이 제대로 동작하지 않는 것이다.
vscode의 PATH를 터미널에서의 PATH와 동일하게 변경 해 주면 vscode에서도 터미널에서 설치한 것들을 사용할 수 있게 된다.
일시적으로 PATH를 변경하려면
export PATH=/usr/local/nvidia/bin:/usr/local/cuda/bin:/opt/conda/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
변경한 PATH를 지속적으로 적용하려면
echo 'export PATH=/usr/local/nvidia/bin:/usr/local/cuda/bin:/opt/conda/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin' >> ~/.bashrc
source ~/.bashrc
이렇게 bashrc 파일을 수정하고 적용 해 주면 된다.
728x90