pyenv: Python 버전 관리의 효율적인 도구

  • 카카오톡 공유하기
  • 네이버 블로그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 트위터 공유하기
  • 링크 복사하기

 

Python 개발을 하다 보면 프로젝트마다 다른 버전의 Python을 사용해야 하는 상황이 자주 발생합니다. 이럴 때 pyenv는 시스템에 여러 버전의 Python을 설치하고 프로젝트별로 쉽게 전환할 수 있게 해주는 강력한 도구입니다. 이 글에서는 pyenv의 설치부터 실제 프로젝트에서의 활용 방법까지 상세히 알아보겠습니다.

시스템에서 Python이 설치가 되어있는지, 어디에 설치되어있는지, 버전은 몇으로 설치되어있는지 체크를 먼저 아래와 같이 해봅니다.

이렇게 특정 버전 하나가 시스템에 설치된 경우에 Pyenv를 통해서 여러 버전을 함께 관리를 해보는 것을 추천합니다.

pyenv란?

pyenv는 다양한 Python 버전을 관리하고 전환할 수 있게 해주는 도구로, 시스템 Python을 건드리지 않고도 여러 버전의 Python을 설치하고 사용할 수 있습니다. 특히 프로젝트별로 다른 Python 버전이 필요할 때 매우 유용합니

pyenv 설치하기

macOS에서 설치

Homebrew를 이용하여 간단하게 설치할 수 있습니다:
(만약 아래 brew 도 설치 안되었다면, https://brew.sh/ 에서 설치를 먼저 하세요. )

Linux에서 설치

자동 설치 스크립트를 사용하여 설치할 수 있습니다:

또는 GitHub 저장소를 직접 클론하여 설치할 수도 있습니다:

설치 후 환경 설정

pyenv를 설치한 후에는 쉘 환경 설정 파일에 다음 내용을 추가해야 합니다:

Bash를 사용하는 경우 (~/.bashrc 또는 ~/.bash_profile):

Zsh를 사용하는 경우 (~/.zshrc):

설정 후 쉘을 재시작하거나 설정 파일을 다시 로드합니다:

pyenv 기본 사용법

사용 가능한 Python 버전 확인

이 명령어는 설치 가능한 모든 Python 버전을 보여줍니다.

특정 버전의 Python 설치

위 명령어는 Python 3.11.12 버전을 설치합니다.

설치된 Python 버전 확인

이 명령어는 현재 설치된 모든 Python 버전과 현재 활성화된 버전을 보여줍니다.

Python 버전 설정하기

글로벌(global) 버전 설정

시스템 전체에서 사용할 기본 Python 버전을 설정합니다:

이제 어디서든 `python` 명령어를 실행하면 Python 3.9.7이 사용됩니다.

로컬(local) 버전 설정

특정 디렉토리(프로젝트)에서만 사용할 Python 버전을 설정합니다:

이 설정은 해당 디렉토리에 `.python-version` 파일을 생성하여 저장됩니다. 이 디렉토리 내에서는 Python 3.8.12가 사용됩니다.

쉘(shell) 버전 설정

현재 쉘 세션에서만 임시로 사용할 Python 버전을 설정합니다:

이 설정은 쉘을 종료하면 사라집니다.

설정 우선순위

pyenv는 다음 순서로 Python 버전을 결정합니다:

  1. PYENV_VERSION 환경 변수 (pyenv shell로 설정)
  2. .python-version 파일 (pyenv local로 설정)
  3. 글로벌 설정 (pyenv global로 설정)

pyenv와 virtualenv 함께 사용하기

pyenv-virtualenv 플러그인을 사용하면 pyenv와 virtualenv를 함께 사용할 수 있습니다.

pyenv-virtualenv 설치

macOS:

Linux:

쉘 설정 파일에 다음 내용을 추가합니다:

가상환경 생성 및 사용

특정 Python 버전으로 가상환경 생성:

가상환경 활성화:

또는 로컬 환경으로 설정:

가상환경 비활성화:

실제 프로젝트에서의 pyenv 활용 사례

1. 레거시 프로젝트 유지보수

Python 2.7로 작성된 레거시 프로젝트를 유지보수하면서 동시에 Python 3.9 기반의 새 프로젝트를 개발해야 하는 경우:

2. 프레임워크 호환성 테스트

Django 애플리케이션이 여러 Python 버전에서 제대로 작동하는지 테스트하는 경우:

3. 데이터 사이언스 프로젝트

데이터 사이언스 프로젝트에서 특정 라이브러리 버전과 호환되는 Python 환경 구성:

4. CI/CD 파이프라인 구성

CI/CD 파이프라인에서 여러 Python 버전으로 테스트를 자동화하는 경우 (.github/workflows/python-tests.yml 예시):

pyenv 활용 팁과 모범 사례

  • 프로젝트별 .python-version 파일 버전 관리: 프로젝트의 Python 버전 요구사항을 명확히 하기 위해 .python-version 파일을 Git에 포함시키세요.
  • requirements.txt와 함께 사용: 가상환경과 함께 requirements.txt 파일을 사용하여 패키지 의존성을 관리하세요.
  • 자동 가상환경 활성화: pyenv-virtualenv의 자동 활성화 기능을 활용하면 디렉토리 진입 시 자동으로 가상환경이 활성화됩니다.
  • pyenv 업데이트: 정기적으로 pyenv를 업데이트하여 최신 Python 버전을 사용할 수 있게 하세요.

문제 해결

Python 설치 실패 시: 필요한 의존성 패키지가 설치되어 있는지 확인하세요.

Ubuntu/Debian:

CentOS/RHEL:

결론

pyenv는 여러 Python 버전을 관리하고 프로젝트별로 격리된 환경을 구성하는 데 매우 유용한 도구입니다. 특히 여러 프로젝트를 동시에 진행하거나, 다양한 Python 버전과의 호환성을 테스트해야 하는 개발자에게 필수적인 도구라고 할 수 있습니다.

pyenv와 virtualenv를 함께 사용하면 더욱 강력한 개발 환경을 구성할 수 있으며, 이를 통해 의존성 충돌 없이 깔끔하고 효율적인 Python 개발이 가능해집니다. 이 글에서 소개한 방법과 사례를 참고하여 여러분의 개발 환경을 최적화해보세요!

참고 자료:

https://realpython.com/intro-to-pyenv/#using-the-pyenv-installer


게시됨

카테고리

작성자

댓글

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다