개발자라면 다양한 파이썬 버전을 사용할 일이 많습니다. 특히 프로젝트의 필요에 따라 서로 다른 파이썬 버전을 요구할 때가 많죠. 이럴 때 유용한 도구가 바로 pyenv입니다. pyenv는 여러 파이썬 버전을 쉽게 관리할 수 있도록 도와주는 도구로, 최근 GitHub에서 44,865개의 스타를 기록하며 많은 개발자들에게 주목받고 있습니다. 이번 포스트에서는 pyenv의 주요 기능과 설치 방법, 그리고 기본 사용법에 대해 자세히 살펴보겠습니다.

pyenv란 무엇인가?

pyenv는 여러 버전의 파이썬을 간편하게 전환하고 관리할 수 있는 도구입니다. 이는 UNIX 철학에 따라 하나의 작업을 잘 수행하도록 설계되었습니다. pyenv의 주요 장점 중 하나는 파이썬 자체에 의존하지 않고 순수한 셸 스크립트로 작성되었다는 점입니다. 이를 통해 부트스트랩 문제를 피할 수 있습니다.

pyenv의 주요 기능

  • 글로벌 파이썬 버전 변경: 사용자가 원하는 글로벌 파이썬 버전을 설정할 수 있습니다.
  • 프로젝트별 파이썬 버전 관리: 프로젝트마다 필요한 파이썬 버전을 쉽게 설정할 수 있습니다.
  • 환경 변수를 통한 버전 오버라이드: 특정 프로젝트에서 사용하는 파이썬 버전을 환경 변수를 통해 쉽게 변경할 수 있습니다.
  • 다중 파이썬 버전 검색: 여러 파이썬 버전을 동시에 검색하여 다양한 버전에서의 테스트를 지원합니다.
  • 설치 가이드

    1. pyenv 설치하기

    Linux/Unix

    ##### 자동 설치 (추천)

    curl -fsSL https://pyenv.run | bash

    위 명령어는 pyenv를 쉽게 설치할 수 있도록 도와줍니다. 설치가 완료되면 기본적인 설정을 진행해야 합니다.

    ##### GitHub에서 수동 설치

    git clone https://github.com/pyenv/pyenv.git ~/.pyenv

    2. 셸 환경 설정

    pyenv를 사용하기 위해서는 셸 환경을 설정해야 합니다. 예를 들어, ~/.bashrc 또는 ~/.zshrc 파일에 다음 내용을 추가합니다.
    export PATH="$HOME/.pyenv/bin:$PATH"
    eval "$(pyenv init --path)"
    eval "$(pyenv init -)"

    3. 셸 재시작

    변경 사항을 적용하기 위해 셸을 재시작합니다.

    exec "$SHELL"

    4. 빌드 의존성 설치

    pyenv를 통해 파이썬을 설치하기 위해 필요한 의존성을 설치합니다. 아래는 Ubuntu의 경우 명령어입니다.
    sudo apt-get update
    sudo apt-get install -y build-essential libssl-dev libbz2-dev libreadline-dev libsqlite3-dev libffi-dev zlib1g-dev

    사용법

    추가 파이썬 버전 설치

    원하는 파이썬 버전을 설치하는 것은 매우 간단합니다. 예를 들어, 파이썬 3.10.0을 설치하려면 다음 명령어를 입력합니다.

    pyenv install 3.10.0

    설치가 완료되면 아래 명령어로 설치된 버전을 확인할 수 있습니다.

    pyenv versions

    파이썬 버전 전환

    설치한 파이썬 버전으로 전환하는 방법은 다음과 같습니다.

    pyenv global 3.10.0

    이후 python --version으로 현재 사용 중인 파이썬 버전을 확인할 수 있습니다.

    파이썬 버전 제거

    더 이상 필요하지 않은 파이썬 버전은 쉽게 제거할 수 있습니다.

    pyenv uninstall 3.10.0

    실무 활용 시나리오

    pyenv는 특히 여러 프로젝트를 동시에 진행하는 개발자에게 큰 도움이 됩니다. 각 프로젝트에 필요한 파이썬 버전을 명확히 관리함으로써 호환성 문제를 줄일 수 있습니다. 예를 들어, A 프로젝트는 Python 3.8을, B 프로젝트는 Python 3.9를 요구할 때, pyenv를 통해 쉽게 전환하고 테스트할 수 있습니다.

    비슷한 도구와의 비교

  • pythonbrew: 파이썬 버전 관리를 지원하지만, 파이썬 설치에 의존합니다.
  • pythonz: 비슷한 기능을 제공하지만, 사용자 경험이 다소 복잡할 수 있습니다.

마무리

pyenv는 파이썬 버전 관리의 어려움을 쉽게 해결해주는 강력한 도구입니다. 다양한 파이썬 버전을 동시에 관리하고, 프로젝트에 맞는 버전을 손쉽게 전환할 수 있습니다. 만약 여러 버전의 파이썬을 다루어야 하는 개발자라면 pyenv를 강력히 추천합니다.

더 많은 정보와 코드를 확인하고 싶다면 pyenv GitHub Repository에서 확인해보세요!