파이썬 프로젝트 관리의 핵심은 파이썬 버전과 의존성을 관리하는 것이다. 이를 위해 가장 기본적으로 알아야 하는 명령어는 파이썬 설치 경로 확인 방법과 파이썬 설치 방법이다. 또한 패키지들의 의존성을 잘 관리하기 위해서는 poetry와 같은 프로젝트 관리 도구를 잘 숙지하고 있는 것도 중요하다.
파이썬 설치 위치를 확인하면 현재 사용 중인 파이썬 인터프리터가 어디에 있고, 어떤 도구에 의해 설치되었는지도 알 수 있다. 또한 poetry와 같은 패키지 관리 도구를 사용할 때 파이썬 버전을 지정할 수 있다.
# python 명령어가 가리키는 실행 파일의 위치
$ which python
# python3 명령어가 가리키는 실행 파일의 위치
$ which python3
# python3.11 명령어가 가리키는 실행 파일의 위치
$ which python3.11
# Poetry를 사용하여 프로젝트에서 python3.11 버전 사용
$ poetry env use /path/to/python3.11
1️⃣ Homebrew: /usr/local/bin/python3.x
2️⃣ pyenv: ~/.pyenv/versions/3.x.x/bin/python
3️⃣ Anaconda:
기본 환경: /Users/username/anaconda3/bin/python
가상 환경: /Users/username/anaconda3/envs/env_name/bin/python
1️⃣ Homebrew: /opt/homebrew/bin/python3.x
2️⃣ pyenv: ~/.pyenv/versions/3.x.x/bin/python
3️⃣ Anaconda:
기본 환경: /Users/username/anaconda3/bin/python
가상 환경: /Users/username/anaconda3/envs/env_name/bin/python
Homebrew는 macOS에서 패키지를 쉽게 설치하고 관리할 수 있는 패키지 관리 시스템이다. 터미널에서 아래의 명령어를 실행하여 파이썬을 설치 할 수 있다.
brew install python@3.11
python3.11 --version
# python3 명령어가 Python 3.11을 가리키도록 강제로 설정
brew link --overwrite python@3.11
pyenv는 여러 버전의 Python을 동시에 설치하고, 각 프로젝트마다 다른 버전을 사용할 수 있게 해주는 도구이다.macOS에서 Homebrew를 사용해 pyenv를 설치한다. 설치 후 셸 초기화 파일 설정이 필요하다는 것이 특징이다.
brew install pyenv
# 셸 초기화 파일(~/.zshrc, ~/.bashrc, 등)에 다음을 추가합니다:
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zshrc
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zshrc
echo 'eval "$(pyenv init --path)"' >> ~/.zshrc
source ~/.zshrc
# Python 3.11 설치
pyenv install 3.11.0
# 특정 프로젝트에서 Python 3.11 사용 설정
pyenv local 3.11.0
Anaconda는 데이터 과학과 머신러닝에 자주 사용되는 Python 배포판으로, 가상 환경 관리와 함께 다양한 패키지를 쉽게 설치할 수 있다.
# Python 3.11을 사용하는 가상 환경(py311) 생성
conda create -n py311 python=3.11
# 설치된 Conda 가상환경 목록 출력
conda env list
# 생성한 가상 환경 활성화
conda activate py311
Anaconda로 설치된 파이썬 및 가상 환경은 Anaconda가 설치된 디렉토리 안에 위치한다. macOS 기준 /Users/username/anaconda3/ 에 설치된다.
어떤 설치 방법을 이용하든 결국 파이썬 인터프리터 자체는 동일하다. 다만 설치 방법별로 가상 환경 관리 및 패키지 간의 의존성 충돌 해소를 수동으로 해야하는지, 자동으로 관리되는지가 달라진다.
시스템 기본 파이썬 또는 Homebrew를 사용해 설치한 파이썬을 사용할 경우 venv나 virtualenv를 사용해 가상 환경을 수동으로 생성하고 관리해야 한다. 또한 패키지 간의 의존성 문제를 수동으로 해결해야 한다.
pyenv를 사용해 파이썬을 설치한 경우 pyenv-virtualenv 플러그인을 통해 가상 환경을 생성하고 관리할 수 있다. 마찬가지로 패키지 간의 의존성 문제를 수동으로 해결해야 한다.
Anaconda의 경우 conda 명령어를 통해 가상 환경을 생성하고 의존성도 자동으로 관리해 의존성 충돌 문제를 최소화해준다. 단 conda와 pip 혼용시 의존성 문제 발생 가능성이 높아 주의해야 한다.
각 방법의 장단점을 이해하고, 프로젝트에 맞는 적절한 방법을 선택하여 파이썬 개발 환경을 효율적으로 관리해보자. 파이썬 버전 및 패키지 관리만 잘해도 불필요한 오류로 낭비되는 시간을 크게 줄일 수 있다.