본문 바로가기
Linux

sudo권한 없고, pip명령어 안될 때 서버에 가상환경 설정하는 법(Command 'pip' not found, Could not open lock file, Unable to acquire the dpkg fronted lock)

by Yuchulnote 2023. 10. 18.
728x90

회사에 입사하신 분들이나 혹은 서버에서 머신러닝/딥러닝을 진행하려 할 때 가상환경을 설정하기 마련이다.

그래서 처음 환경세팅을 할 때 익숙한 "pip" 명령어를 사용하게 되는데 이 때 당황스러운 에러 메세지를 맞이하게 된다.
Command 'pip' not found

너무도 당연하게 이제 터미널 창에서 하라는대로 "apt install python3-pip" 명렁어를 입력하게 되는데 여기서 더 당황스러운 에러메세지를 맞이하게 된다.
Could not open lock file
Unable to acquire the dpkg fronted lock


하지만 일반적으로 이러한 환경에서는 sudo 권한이 없고 파이썬 환경이 없어 python 명령어와 pip 명령어가 작동하지 않는다.

이제 이를 해결하기 위해 구글링을 해보다보면 무한의 굴레에 빠지게 되고, 보통의 경우 sudo 권한이 있는 본인의 컴퓨터나 환경에서의 해결법만 가득한 구글 페이지를 보게 된다.

 나와 같이 이러한 처지에 놓인 이들을 위해 정리한다!


pyenv 설치

git clone https://github.com/pyenv/pyenv.git ~/.pyenv

 

pyenv 환경 변수 추가

한줄씩 커맨드 창에 입력해주세요

echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
echo 'command -v pyenv>/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(pyenv init -)"' >> ~/.bashrc

echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.profile
echo 'command -v pyenv>/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.profile
echo 'eval "$(pyenv init -)"' >> ~/.profile

모두 입력을 마치고 재접속(나의 경우 vscode) 하면 pyenv가 된다.

pyenv를 통해 python을 설치한다. → 서버상에 나의 로컬 환경에 다운 받는 것이므로 처음에 조우한 에러는 발생하지 않는다.

원하는 파이썬 버젼에 맞게 설치

pyenv install 3.10.8

이제 설치한 버전으로 global 설정을 해준다.

pyenv global 3.10.8

 

위 설정까지 마치게 된다면 이제 sudo 권한이 없는 서버 환경에서

python 명령어와 pip 명령어 모두 해결이 되게 된다.



이제 가상환경 설정을 하자.

가상환경에는 pipenv, anaconda, venv등 여러가지가 있지만 개인적으로 venv를 애용하는 편이다.
왜냐하면 venv는 가상환경 생성도 쉽고, 작업 디렉토리 별로 관리하기도 편하다. 또한 아나콘다는 정말 필요한 패키지 외에 용량을 많이 차지하기 때문에 특별히 선호하는 가상환경이 없다면 나를 따라 venv 환경 세팅을 해보길 바란다.

cd (가상환경을 설정할 작업 디렉토리)

주로 venv환경은 .venv라는 이름을 많이 사용한다.
따로 원하는 가상환경 명이 있다면 .venv대신 다른 이름으로 작성하여도 좋다.

python -m venv .venv

이제 가상환경 생성이 끝났다!
가상환경에 접속하는 방법은 아래와 같다.

source .venv/bin/activate

코드를 칠 때 탭을 이용해 자동완성을 잘 이용하는 것을 추천한다.
여담으로 윈도우 환경이라면 source명령어가 아닌 "call .venv/scripts/activate" 라고 해야한다.

위 그림처럼 커맨드창 맨 앞에 (.가상환경이름)이 뜬다면 가상환경이 활성화가 된 것이다.
가상환경을 비활성화 하고 싶다면 커맨드 창에 "deactivate" 이라고 입력하면 된다.

모두 즐거운 코딩~

728x90
반응형

'Linux' 카테고리의 다른 글

SSH 파일 업로드 및 다운로드 하는 방법  (1) 2023.10.19