티스토리 뷰
conda 가상환경에서 라이브러리를 설치했을 때, 어딘가 설정이 잘못되어서 가상환경 하위 폴더가 아니라 서버의 로컬 폴더에 설치되었다.
따라서 가상환경마다 라이브러리를 다른 버전으로 쓸 수가 없어서 가상환경을 쓰는 의미가 없었다.
가상환경을 제대로 사용하기 위해 이를 해결해보자.
문제 확인하기
$PATH
환경변수를 출력해보니 다음과 같이 출력되었다.
'-bash: /home/사용자명/.local/bin: /home/사용자명/anaconda3/envs/가상환경명/bin: /home/사용자명/anaconda3/condabin: /usr/local/sbin: /usr/local/bin:/usr/sbin: /usr/bin:/sbin:/bin:/usr/games: /usr/local/games:/snap/bin:'
원래 정상이라면 첫번째에 '/home/사용자명/anaconda3/envs/가상환경명/bin'이 나와야 하는데 나의 경우 두번째 순서로 설정이 되어 있다.
which python
정확히 기억은 안나지만 '/home/사용자명/.local' 하위 폴더 경로로 출력이 되었던 것 같다. 확실한 건 anaconda3 하위 폴더는 아니었다.
설정이 정상적으로 되어 있다면, 가상환경을 활성화한 상태에서 출력 결과가 '/home/사용자명/anaconda3/envs/가상환경명/bin/python'으로 나와야 한다.
pip -V
나의 경우 'pip 21.3.1 from /home/사용자명/.local/lib/python3.6/site-packages/pip (python 3.6)'로 출력이 되었다.
가상환경에서 python 3.8 버전으로 설치를 했지만 서버 로컬에 설치된 python 3.6 버전이 잡히는 것을 확인할 수 있다. 계속 anaconda3 하위 경로가 잡히지 않고 .local 하위 경로가 잡히고 있다.
해결하기
python을 불러오는 경로를 재설정하도록 한다.
cd ~/anaconda3/envs/가상환경명/bin
ls
출력된 것 중 python을 찾는다.
이 경로에 존재하는 python3.8을 기본 python으로 설정할 것이다.
vi ~/.bashrc
파일의 맨 끝 부분에 다음과 같이 입력한다.
alias python='/home/사용자명/anaconda3/envs/가상환경명/bin/python3.8'
export PATH=/home/사용자명/anaconda3/envs/가상환경명/bin:$PATH
첫번째 줄은 터미널에 'python' 명령어를 입력하면 python 3.8 버전이 실행되도록 별칭을 등록하는 과정이다.
두번째 줄은 PATH 환경변수를 설정하는 과정으로 입력해준 경로가 첫 순위 경로로 잡히게 된다.
파일을 저장하고, 아래 명령어를 입력한다.
source ~/.bashrc
서버를 재부팅 또는 로그아웃을 하면 환경변수 세팅이 처음으로 돌아가기 때문에, 위 명령어를 통해 세팅을 영구적으로 반영해준다.
위 명령어를 실행하면 가상환경이 비활성화된다.
최종적으로 모두 anaconda3 폴더 하위 경로로 설정이 잘 되었는지 확인한다.
$PATH
# -bash: /home/사용자명/anaconda3/envs/가상환경명/bin: /home/사용자명/anaconda3/bin: /home/사용자명/.local/bin: /home/사용자명/anaconda3/condabin: /usr/local/sbin: /usr/local/bin: /usr/sbin: /usr/bin: /sbin: /bin: /usr/games: /usr/local/games: /snap/bin:
which python
# /home/사용자명/anaconda3/envs/가상환경명/bin/python
pip -V
# pip 21.2.4 from /home/사용자명/anaconda3/envs/가상환경명/lib/python3.8/site-packages/pip (python 3.8)
이제 가상환경을 제대로 쓸 수 있다 :)
+ 추신
conda 가상환경 내에서는 웬만하면 pip install보다는 conda install을 이용하자.
'Linux' 카테고리의 다른 글
[Linux] KoNLPy Mecab 설치 (0) | 2022.05.26 |
---|---|
[에러 해결] 많은 파일 삭제 시 '/usr/bin/rm: arg list too long' (0) | 2021.09.11 |
[Linux] 쉘 스크립트(Shell script) 사용법 (0) | 2021.08.26 |
[Linux] task_struct로부터 파일명, 파일 경로 출력하기 (0) | 2020.11.30 |
Linux에서 Pytorch (torch 모듈) 설치하기 (0) | 2020.11.08 |