Docker

vscode docker container에서 pip 명령어가 안될 때 | bash: pip3: command not found

토오오끼 2024. 9. 1. 17:02
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
반응형