개발자에게 Python은 필수적인 언어 중 하나입니다. 하지만 Python의 다양한 버전 문제는 종종 혼란을 초래하곤 하죠. 특히, 여러 프로젝트에서 서로 다른 버전을 요구할 때 그 불편함은 더욱 커집니다. 이러한 문제를 해결하기 위해 등장한 도구가 바로 pyenv입니다. 이번 글에서는 pyenv가 무엇인지, 어떻게 설치하고 사용하는지, 그리고 실무에서 어떻게 활용할 수 있는지를 자세히 살펴보겠습니다.
pyenv란 무엇인가?
pyenv는 여러 버전의 Python을 손쉽게 관리할 수 있게 도와주는 도구입니다. 이 도구는 사용자가 필요에 따라 Python 버전을 변경할 수 있게 해주며, 각 프로젝트에 맞는 버전을 설정할 수 있도록 해줍니다. pyenv는 단순하고 불편함이 없으며, UNIX 철학에 따라 단일 목적의 도구로 설계되었습니다.
주요 기능으로는 다음과 같은 것들이 있습니다:
- 전역 Python 버전 변경: 사용자 단위로 Python의 전역 버전을 쉽게 변경할 수 있습니다.
- 프로젝트별 Python 버전 지원: 특정 프로젝트에 맞는 Python 버전을 설정할 수 있습니다.
- 환경 변수로 Python 버전 오버라이드: 환경 변수를 통해 Python 버전을 간편하게 변경할 수 있습니다.
- 동시 여러 버전의 Python 명령 검색: 여러 버전의 Python을 동시에 검색할 수 있어, tox와 같은 도구로 다양한 버전을 테스트할 수 있습니다.
pyenv 설치하기
A. pyenv 설치하기
Linux/Unix
##### 1. 자동 설치 (추천)
가장 간편하게 pyenv를 설치할 수 있는 방법은 자동 설치 스크립트를 사용하는 것입니다. 아래 명령어를 터미널에 입력해주세요.
curl -fsSL https://pyenv.run | bash
이 명령어를 실행하면 pyenv와 관련된 필수 구성 요소가 자동으로 설치됩니다.
##### 2. GitHub에서 직접 설치
GitHub에서 소스 코드를 클론하여 설치할 수도 있습니다. 아래 명령어를 사용하세요.
git clone https://github.com/pyenv/pyenv.git ~/.pyenv
설치가 완료된 후, 환경 변수를 설정해줘야 합니다.
B. 셸 환경 설정하기
~/.bashrc 또는 ~/.zshrc 파일을 열어 아래의 내용을 추가합니다.
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init --path)"
C. 셸 재시작
변경 사항을 적용하기 위해 셸을 재시작합니다. 다음 명령어를 입력하세요.
exec "$SHELL"
D. Python 빌드 종속성 설치
Python을 설치하기 위해 필요한 빌드 종속성을 설치해야 합니다. 운영체제에 따라 다음 명령어를 사용하세요.
sudo apt-get update; sudo apt-get install -y build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libffi-dev liblzma-dev python3-openssl git
sudo dnf install gcc make patch zlib-devel bzip2-devel readline-devel sqlite-devel openssl-devel tk-devel libffi-devel xz-devel
pyenv 사용법
1. 추가 Python 버전 설치하기
pyenv를 사용하면 다양한 Python 버전을 설치할 수 있습니다. 예를 들어, Python 3.9.7을 설치하고 싶다면 아래 명령어를 입력합니다.
pyenv install 3.9.7
설치 가능한 Python 버전 목록은 다음 명령어로 확인할 수 있습니다.
pyenv install --list
2. Python 버전 전환하기
설치한 여러 버전의 Python 중에서 사용할 버전을 전환하는 것은 매우 간단합니다. 전역적으로 사용할 Python 버전을 변경하고 싶다면 아래 명령어를 사용하세요.
pyenv global 3.9.7
특정 프로젝트에서 사용할 경우에는 프로젝트 디렉토리에서 아래 명령어를 실행합니다.
pyenv local 3.8.10
3. Python 버전 제거하기
더 이상 필요하지 않은 Python 버전은 쉽게 제거할 수 있습니다. 아래 명령어를 사용하세요.
pyenv uninstall 3.8.10
실무 활용 시나리오
개발 환경에서 여러 프로젝트를 동시에 진행할 때, 각 프로젝트마다 필요한 Python 버전이 다를 수 있습니다. 예를 들어, A 프로젝트는 Python 3.9.7을 필요로 하고 B 프로젝트는 Python 3.8.10을 필요로 하는 경우, pyenv를 사용하면 각 프로젝트 디렉토리에서 간편하게 버전을 관리할 수 있습니다.
또한, CI/CD 환경에서도 pyenv를 활용하여 특정 Python 버전에서 테스트를 진행할 수 있습니다. 이를 통해 배포 전 다양한 환경에서의 호환성을 체크할 수 있는 장점이 있습니다.
다른 도구와의 비교
마무리
pyenv는 Python 버전 관리를 간편하게 해주는 도구로, 다양한 프로젝트와 개발 환경에서 유용하게 활용될 수 있습니다. 복잡한 Python 버전 문제를 해결하고자 하는 개발자들에게 강력히 추천합니다.
더 자세한 내용은 pyenv의 GitHub 페이지를 방문해보세요!