안녕하세요🐶
빈지식 채우기의 비니🙋🏻♂️ 입니다.
요즘 AI에 대해 공부를 하면서 Python 을 자주 사용하게 되었습니다.
프로젝트 마다 각기 다른 모듈 버전을 사용하고,
각기 다른 파이썬 버전을 사용하기 때문에 venv 를 통해 프로젝트 마다 버전 관리를 해왔습니다.
하지만..
이상하게 venv 쓰다보면 Python 과 pip 경로가 homebrew로 자꾸 잡히다보니 오류가 발생하여,
찾다보니 pyenv에 대해 알게되었고 이 부분에 있어서 정리를 하려고 합니다!
1. pyenv 란?
상단 이미지처럼 pyenv 는 Global Local Shell 각 위치에 Python 버전을 구분해서 사용 할 수 있다.
shell > local > global > system(Homebrew) 우선 순위로 적용된다.
예를 들어,
Global 로 3.10 버전의 파이썬을 사용하고 있고 특정 프로젝트에서 3.10 버전의 파이썬을 Local 로 설정할 경우,
해당 프로젝트는 3.10 버전의 파이썬을 우선 인식한다.
Global 보다 Local이 우선 적용되기 때문이다.
이런 기능이 가능하다면,
프로젝트 마다 다르게 Python Local 을 설정해서 프로젝트 마다 충돌이 되는 것을 방지할 수 있다.
2. 사용법
개념은 여기까지 하고 바로 사용법을 알아보도록 하자.
2-1. Homebrew 설치
# 터미널을 통해 Homebrew를 설치한다.
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
설치 이후 환경변수 적용을 해야한다. 아래와 같은 명령어를 입력한다.
# 경로 스크립트 입력
eval "$(/opt/homebrew/bin/brew shellenv)"
명령어를 보면 shell 이라는 단어가 나오는데,
위에 이미지 계층을 통해 알 수 있듯이 shell 이 가장 상단에 위치하므로 반드시 우선적으로 적용된다.
2-2. pyenv, pyenv-virtualenv 설치
# pyenv pyenv-virtualenv 설치
brew install pyenv pyenv-virtualenv
2-3. zshrc 설정
# pyenv 경로를 PYENV_ROOT 로 정의한다.
echo 'export PYENV_ROOT="$HOME/.pyenv"
$ pyenv/bin을 PATH에 등록하여 어디에서도 사용가능하게 한다.
export PATH="$PYENV_ROOT/bin:$PATH"
# pyenv 를 정상적으로 사용할 수 있도록 zshrc 에 init 명령어를 추가한다.
eval "$(pyenv init -)"
# pyenv virtualenv 를 정상적으로 사용할 수 있도록 zshrc 에 init 명령어를 추가한다.
eval "$(pyenv virtualenv-init -)"' > ~/.zshrc
# 적용
source ~/.zshrc
2-4. pyenv 특정 버전 설치 및 확인
# 파이썬 3.9.17 설치
pyenv install -v 3.9.17
# 설치된 모든 파이썬 버전 확인
pyenv versions
2-5. 가상환경 만들기
# 가상환경 만들기 ( 파이썬 버전 3.9.17 )
pyenv virtualenv 3.9.17 [가상환경 이름]
2-6. 가상환경 생성 확인
# 설치된 가상환경 확인
pyenv versions
2-7. 가상환경 활성화
# 프로젝트 이동 후 해당 프로젝트 경로에 local 등록
pyenv local [가상환경 명]
2-8. 활성화 확인
# python 과 pip 경로 확인 ( 가상환경으로 나오면 활성화 성공! )
which pip
which python
또한 pip list를 통해서 서로 다른 프로젝트들이 다른 모듈을 다운로드 받았는지 확인할 수 있다.
감사합니다.