최근에 AI개론이라는 수업을 듣다가 spacy란 라이브러리를 사용해야되는 경우가 있었다.
하지만 필자가 brew로 설치한 파이썬의 버전은 3.13버전이었고, spacy 라이브러리는 파이썬 3.12버전까지만 지원을 하고 있었다.
(항상 버전 오류가 개발자를 힘들게 하는 것 같다,,,)
그러다가 문득 들었던 생각이 그저 brew로 파이썬 3.12를 따로 설치하는 것이 아닌 버전관리를 쉽게 왔다갔다 할 수 있는 방법이 없을까?
라는 생각이 문득 들었다.
그러다가 pyenv란 것을 알게 되었다.
이번 글에서는 macOS에서 Python 버전을 관리하는 두 가지 주요 방법인 Homebrew와 pyenv에 대해 자세히 알아보고, 각각의 장단점을 비교해보려 한다.
Homebrew란 무엇인가
Homebrew는 macOS(또는 Linux)용 패키지 관리자로, 다양한 소프트웨어를 쉽게 설치, 업데이트, 관리할 수 있게 해준다.
Apple에서 기본적으로 제공하지 않는 다양한 도구, 라이브러리, 애플리케이션을 설치할 수 있으며, Python도 그 중 하나이다.
Homebrew
The Missing Package Manager for macOS (or Linux).
brew.sh
Homebrew를 설치하는 방법은 다음과 같다.
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
이 명령어는 Homebrew의 공식 설치 스크립트를 다운로드하고 실행한다.
설치가 완료되면 brew 명령어를 사용할 수 있게 된다.
pyenv란 무엇인가
pyenv는 Python 버전 관리를 위한 전용 도구이다.
여러 버전의 Python을 사용자별 또는 프로젝트별로 쉽게 전환할 수 있게 해준다.
특히 다양한 Python 버전에 의존하는 여러 프로젝트를 동시에 진행할 때 매우 유용하다.
pyenv를 Homebrew를 통해 설치하는 방법은 아래와 같다.
brew install pyenv
설치 후에는 쉘 설정 파일(.zshrc, .bash_profile 등)에 다음 내용을 추가해야 한다. (터미널 열어서)
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zshrc
echo 'command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zshrc
echo 'eval "$(pyenv init -)"' >> ~/.zshrc
이 명령어들은 pyenv가 설치된 경로를 PATH에 추가하고,
pyenv 초기화 스크립트를 실행하도록 설정한다.
Homebrew로 Python 설치 및 관리하기
Homebrew를 사용하여 Python을 설치하는 것은 매우 간단하다.
특정 버전의 Python을 설치하려면 다음과 같이 명령어를 입력한다.
# 최신 Python 설치
brew install python
# 특정 버전 설치 (예: Python 3.12)
brew install python@3.12
위 명령어는 Python과 pip를 함께 설치하고, 관련 의존성도 자동으로 처리한다.
설치된 Python 버전 확인하기
python3 --version
Homebrew로 설치한 Python을 업데이트하는 방법
brew upgrade python
이 명령어는 현재 설치된 Python을 최신 버전으로 업데이트한다.
Homebrew로 설치한 여러 Python 버전 간 전환하는 방법
# Python 3.12를 기본으로 설정
echo 'export PATH="/opt/homebrew/opt/python@3.12/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc
이 명령어는 Python 3.12의 실행 파일 경로를 PATH 환경 변수의 앞부분에 추가하여 시스템이 이 버전을 우선적으로 사용하도록 한다.
pyenv로 Python 설치 및 관리하기
pyenv를 사용하여 Python을 설치하고 관리하는 방법은 Homebrew와는 다소 차이가 있다.
pyenv는 Python 버전 관리에 특화된 도구이므로, 여러 버전을 쉽게 설치하고 전환할 수 있다.
pyenv로 설치 가능한 Python 버전 목록 확인하기
pyenv install --list
이 명령어는 pyenv로 설치 가능한 모든 Python 버전을 보여준다.
특정 Python 버전 설치하기
pyenv install 3.12.2
이 명령어는 Python 3.12.2 버전을 사용자 디렉토리(~/.pyenv/versions/)에 설치한다.
pyenv는 각 버전을 독립적으로 컴파일하므로 설치에 약간 시간이 걸릴 수 있다.
설치된 Python 버전 확인하기
pyenv versions
이 명령어는 현재 설치된 모든 Python 버전과 활성화된 버전을 표시한다.
전역 Python 버전 설정하기
pyenv global 3.12.2
이 명령어는 시스템 전체의 기본 Python 버전을 3.12.2로 설정한다.
여기서 '전역'이란 pyenv를 통해 관리되는 환경 내에서의 전역이며, 시스템 Python에는 영향을 주지 않는다.
특정 디렉토리에서 사용할 Python 버전 설정하기
cd my_project
pyenv local 3.11.7
이 명령어는 현재 디렉토리에서 사용할 Python 버전을 3.11.7로 설정한다.
이 설정은 .python-version 파일에 저장되어, 해당 디렉토리에 들어갈 때마다 자동으로 지정된 Python 버전이 활성화된다.
Homebrew vs pyenv: 무엇을 선택해야 할까???
Homebrew와 pyenv 모두 Python을 설치하고 관리하는 방법을 제공하지만, 각각의 도구는 서로 다른 용도에 적합하다!!
Homebrew를 선택해야 하는 경우:
- 단일 Python 버전만 필요한 경우
- 시스템 전체에 일관된 Python 환경을 원하는 경우
- 다른 Homebrew 패키지와의 통합이 중요한 경우
- 간단한 설치와 관리를 선호하는 경우
pyenv를 선택해야 하는 경우:
- 여러 Python 버전을 동시에 관리해야 하는 경우
- 프로젝트별로 다른 Python 버전이 필요한 경우
- 시스템 Python과 별도로 Python 환경을 관리하고 싶은 경우
- 가상 환경과 함께 Python 버전을 관리하고 싶은 경우
실제로는 두 도구를 함께 사용하는 경우도 많다고 한다.
Homebrew를 사용하여 pyenv를 설치하고, pyenv를 통해 Python 버전을 관리하는 방식이 일반적이다
이렇게 하면 Homebrew의 편리한 패키지 관리 기능과 pyenv의 뛰어난 Python 버전 관리 기능을 모두 활용할 수 있다!!
Python 개발 환경을 설정할 때 Homebrew와 pyenv는 각각 장단점이 있다.
단일 Python 버전만 필요하고 간단한 설정을 원한다면 Homebrew를 사용하는 것이 좋고,
여러 Python 버전을 유연하게 관리하고 싶다면 pyenv가 더 적합하다.
개인적으로는 Homebrew를 사용하여 pyenv를 설치하고, pyenv로 Python 버전을 관리하는 방식을 추천한다.
이렇게 하면 두 도구의 장점을 모두 활용할 수 있다.
Python 버전 관리는 개발 환경을 구성하는 데 있어 중요한 부분이다.
프로젝트의 요구사항에 맞게 적절한 도구를 선택하여 효율적인 개발 환경을 구축하자!!!