Table of Contents
- pyenv 와 venv를 활용해 파이썬 가상환경 관리하기
파이썬 버전 우선순위
- pyenv local: 디렉터리 단위로 지정되는 파이썬 버전
- pyenv global: 디렉터리에 지정된 local 버전이 없는 경우 지정되는 파이썬 버전
- system python: venv 도구가 관리하지 않는 로컬에 설치된 파이썬 버전
- pyenv는 ~/.pyenv 디렉터리에 버전별로 파이썬 패키지를 관리하고 있다
- version 파일은 global 버전을 나타낸다
- versions 디렉터리에 버전별로 파이썬 패키지가 저장돼있다
파이썬 가상환경 만들기
- 프로젝트별로 만들고 싶은 경우
- (ex. 이미지 분류 프로젝트, 음성 인식 프로젝트 등)
- 프로젝트 디렉토리마다 가상환경을 만든다
- 용도별로 만들고 싶은 경우
- (ex. 딥러닝 목적, 데이터 분석 목적, 웹개발 목적 등)
- 별도의 디렉터리에 가상환경들을 모아둔다
프로젝트별로 만드는 경우
- 프로젝트 디렉터리를 만든다
- 현재 global은 3.8.13 이고 해당 디렉터리에 local은 아직 지정되지 않았다
- 해당 프로젝트에서 파이썬 버전으로 3.9.1을 쓴다고 해보자
pyenv install 3.9.1
- 해당 프로젝트 폴더에서 local 로 3.9.1을 지정하자
- 이제 파이썬 3.9.1 버전을 바탕으로 가상환경을 하나 만들자
- (보통 프로젝트별로 가상환경을 만들 때는 가상 환경 이름을 .venv로 만드는게 관례다)
python3 -m venv <원하는 가상환경 이름>
- 가상환경을 사용하려면 활성화 해야 한다
source ./.venv/bin/activate
- 가상환경으로 접속됐는지 확인해보자 (activate된 경우 해당 가상환경 폴더 출력. deactivate된 경우 출력 안함)
echo $VIRTUAL_ENV
- 이제 가상환경에 원하는 라이브러리를 설치해보자
pip3 install pandas
- 가상환경을 비활성화(deactivate) 시키면 가상환경에서 설치했던 pandas 라이브러리가 다시 안보인다
용도별로 만들고 싶은 경우
- 프로젝트별로 만드는 방법과 똑같다
- 차이는 용도별로 만들어진 가상환경은 여러 프로젝트에서 쓰일 것이므로, 조금 더 범용적인 위치에 설치해두는 것이 좋다
- 나는 홈 디렉터리(~)에 가상환경들을 위한 virtual_environments 디렉터리에 가상환경들을 만들어 뒀다
- 데이터 분석을 위한 용도로 가상환경을 한 번 만들어보자
mkdir ~/virtual_environments
cd ~/virtual_environments
mkdir data-analysis
cd data-analysis
pyenv local 3.8.13
python3 -m venv data_analysis_3.8 # 3.8 버전의 데이터 분석을 위한 가상 환경(data_analysis_3.8) 생성
source ~/virtual_environments/data_analysis/data_analysis_3.8/bin/activate
(
# 이렇게 3.8 버전을 만들고 pyenv local 3.8.13 이렇게 하는게 더 정확한 방법인 것 같음
mkdir 3.8
cd 3.8
pyenv local 3.8.13
python3 -m venv . # 3.8 버전의 데이터 분석을 위한 가상 환경(3.8) 생성
source ~/virtual_environments/data_analysis/3.8/bin/activate
)
pip3 install scikit-learn
pip3 install matplotlib
pip3 install pandas
명령어 모음
# pyenv를 이용해 설치한 파이썬 버전 목록
pyenv versions
# pyenv로 설치 가능한 파이썬 버전 목록
pyenv install --list
# 원하는 버전의 파이썬 설치/삭제
pyenv install 3.8.13
pyenv uninstall 3.8.13
# global 또는 local 버전 확인
pyenv global
pyenv local
# global 또는 local 버전 설정
pyenv global 3.8.13
pyenv local 3.8.13
# local 버전 해제
pyenv local --unset
# 가상환경 생성
python3 -m venv <원하는 가상환경 이름>
# 가상환경 활성화
source <원하는 가상환경 디렉터리 위치>/bin/activate
# 가상환경 비활성화
deactivate
# 가상환경 확인
echo $PYENV_VERSION
# 가상환경 삭제
rm -rf <삭제하고 싶은 가상환경 디렉터리 위치>