pyenv는 한 컴퓨터 안에서 여러 Python 버전을 설치하고, 프로젝트나 터미널 세션별로 사용할 버전을 바꾸게 해주는 버전 관리자입니다.
macOS에서 Homebrew Python 패키지만으로 원하는 과거 버전을 맞추기 어려울 때는 pyenv install, global, local, shell의 역할을 구분해두면 Python 버전 충돌을 줄일 수 있습니다.
핵심 정리
pyenv는 Python 패키지 의존성 관리 도구가 아니라 Python 실행 파일 버전을 고르는 도구입니다. 먼저 필요한 Python 버전을 설치하고, 전체 기본값은 global, 특정 프로젝트 디렉터리는 local, 현재 터미널 세션의 임시 전환은 shell로 지정합니다. 가상환경은 별도 virtualenv나 pyenv-virtualenv가 맡는 영역이므로, Python 버전 선택과 패키지 격리를 분리해서 이해하는 편이 좋습니다. 초기화 스크립트와 설치 방식은 셸과 pyenv 버전에 따라 달라질 수 있어 실제 설치 전에는 공식 pyenv README를 확인해야 합니다.
- pyenv install은 사용할 Python 버전을 새로 설치하는 단계입니다.
- pyenv versions는 설치된 버전 목록과 현재 선택된 버전을 확인할 때 씁니다.
- pyenv global은 기본 Python 버전을 전역으로 지정합니다.
- pyenv local은 현재 프로젝트 디렉터리에만 적용되는 Python 버전을 지정합니다.
- pyenv shell은 현재 터미널 세션에서만 임시로 Python 버전을 바꿉니다.
- activate 명령은 가상환경 활성화에 가깝고, pyenv의 핵심 역할은 어떤 Python 실행 파일을 쓸지 고르는 것입니다.
원문은 과거 Python 버전 사용 문제에서 출발한 글입니다. 이번 보강은 명령어를 무작정 따라 치기보다 global, local, shell의 차이를 먼저 보이게 바꾸고, 설치 명령은 공식 README 확인이 필요하다는 안전 장치를 넣었습니다.
이어서 볼 글
- Python venv 가상환경: virtualenv 차이와 사용법 - pyenv로 Python 버전을 고른 뒤 프로젝트별 패키지 환경은 venv로 분리한다.
- Python requirements.txt 사용법: 가상환경 패키지 저장과 설치 - 선택한 Python 버전과 가상환경 안의 패키지 목록을 재현하는 흐름이 이어진다.
mac에서 brew install python@3.6 등의 명령으로 여러버전의 python을 설치할 수 있으나, 과거 버전은 지원하지 않는다.
이때 pyenv를 통해서 여러버전의 python을 동시에 운용할 수 있다.
먼저 brew install pyenv를 통해서 pyenv를 설치한다음
pyenv install 3.6 등의 명령어를 통해 필요한 버전을 설치하면 된다.
해당 버전으로 전환하기 위해서는 먼저 .zshrc또는 .bashrc파일에 다음 내용을 추가해야한다.
(참고로 macOS의 경우 요즘엔 zsh이 기본이다)
export PATH="$HOME/.pyenv/bin:$PATH"
eval "$(pyenv init --path)"
eval "$(pyenv init -)"
그다음 source ~/.zshrc 또는 source ~/.bashrc로 적용하고
pyenv global 3.6 등의 명령어를 통해 버전을 전환하면 된다.
global은 시스템 전체에서 기본적으로 사용할 Python 버전을 설정하라는 명령어이다.
local을 대신 쓰면 그 프로젝트의 디렉터리 내에서만 사용할 Python 버전을 따로 설정할 수 있다.
pyenv versions 를 통해서 현재 시스템에 설치된 버전들을 볼 수도 있다.
pyenv global system을 하면 원래 시스템의 python으로 돌아갈 수도 있다.
virtualenv와의 관계
pyenv
역할: pyenv는 여러 버전의 Python을 설치하고 관리하는 데 사용됩니다. pyenv를 사용하면 시스템 전체에 걸쳐 여러 Python 버전을 설치하고, 각각을 필요에 따라 선택하여 사용할 수 있습니다. 이를 통해 서로 다른 프로젝트에서 다른 Python 버전을 쉽게 사용할 수 있습니다.
activate 명령어: pyenv는 환경을 활성화하기 위해 activate 명령어를 직접 사용하지 않습니다. 대신, pyenv local, pyenv global, pyenv shell 같은 명령어를 통해 Python 버전을 설정합니다. 이러한 설정을 통해 특정 디렉터리나 세션에서 사용할 Python 버전을 자동으로 활성화하게 됩니다.
많은 사용자들은 pyenv 를 사용하여 여러 Python 버전을 관리하고,
virtualenv (또는 pyenv 의 플러그인인 pyenv-virtualenv )를 사용하여 특정 버전에 대한 독립적인 개발 환경을 생성합니다. 이렇게 하면 Python 버전 관리와 프로젝트 의존성 관리를 모두 효과적으로 할 수 있습니다.
'Programming > Python' 카테고리의 다른 글
| Python venv 가상환경: virtualenv 차이와 사용법 (0) | 2023.12.17 |
|---|---|
| mypy와 pytype 차이: Python 정적 타입 검사와 타입 추론 (1) | 2023.10.07 |
| Python 한글 인코딩 처리: 유니코드 escape와 UTF-8 복원 (0) | 2021.11.30 |
| Python GUI Programming(Tkinter) (2) | 2021.01.02 |
| Python requirements.txt 사용법: 가상환경 패키지 저장과 설치 (1) | 2020.09.20 |

