Skip to main content

Command Palette

Search for a command to run...

[Mac] Python 환경 리빌딩 (2): Pyenv + uv로 완성하는 초고속 워크플로우

Updated
•3 min read•View as Markdown

지난 포스팅에서 우리는 맥북을 어지럽히던 Conda와 여러 버전의 파이썬을 완전히 정리했습니다. 혹시 아직 기존 환경을 정리하지 않으셨다면, 이전 글: [Mac] Python 환경 리빌딩 (1): Python 설정 초기화를 먼저 보고 오시는 것을 강력 추천합니다.


🛠️ 1. Pyenv: 파이썬 버전 관리의 표준

자바 진영에 SDKMAN이 있다면, 파이썬에는 Pyenv가 있습니다. 시스템 파이썬은 건드리지 않고, 내가 원하는 버전만 깔끔하게 설치하고 스위칭할 수 있게 해줍니다.

설치 및 셸 설정

# Homebrew로 설치
brew install pyenv

# .zshrc에 설정 추가 (이 설정이 있어야 pyenv가 활성화됩니다)
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zshrc
echo '[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zshrc
echo 'eval "$(pyenv init -)"' >> ~/.zshrc

# 설정 반영
source ~/.zshrc

# 설치 확인
pyenv -v
pyenv 2.6.17

.zshrc 파일

파이썬 버전 설치

AI/데이터 사이언스 분야에서 사용할 예정이기 때문에 3.12 버전을 선택하였다. (만약 보수적인 라이브러리를 사용해야 하는 상황이면 3.11을 선택해도 된다.)

# pyenv 설치 가능 version 확인 
pyenv install --list | grep " 3.12"

# 최신 안정 버전 설치 (예: 3.12.12) - 다소 설치시 시간이 걸림
pyenv install 3.12.12

# 전역(Global) 버전으로 설정
pyenv global 3.12.12

# 확인
python3 --version  # Python 3.12.12 가 나오면 성공!

만약 파이썬 버전 이 정상적으로 나오지 않으면 터미널(terminal)을 재시동 해 주면 정상적인 버전이 나오는 것을 확인할 수 있다.


⚡ 2. uv: Rust로 만든 초고속 패키지 매니저

uv는 Rust로 작성되어 기존 도구보다 10배에서 100배까지 빠릅니다. (pip, conda install 보다 매우 빠른 속도를 자랑합니다.)

uv 설치

curl -LsSf https://astral.sh/uv/install.sh | sh

# 설치 후 터미널 재시작 또는 소스 반영
source ~/.zshrc

# uv 설치 확인
uv --version
uv 0.9.21 (0dc9556ad 2025-12-30)

🏗️ 3. 실전 프로젝트 워크플로우 (가상환경)

이제 실제로 프로젝트를 시작할 때 어떻게 가상환경을 만들고 관리하는지 보여드리겠습니다. venv를 직접 호출할 필요 없이 uv가 모든 것을 처리합니다.

1) 프로젝트 준비

개인적으로 ~/workspace/python 을 파이썬 개발 루트(root) 로 진행 할 예정입니다.

# 이미 ~/workspace/python 있는 경우를 가정합니다.
cd ~/workspace/python
# 예제 프로젝트 생성 
mkdir prompt-playground

cd prompt-playground

2) 가상환경 생성 및 활성화

1. 가상환경이란?

"프로젝트마다 필요한 라이브러리를 담는 전용 도구 상자를 만드는 것"이 바로 가상환경의 본질입니다.

2. 왜 가상환경을 써야 하나요?

  • 버전 충돌 방지: 프로젝트 A는 Django 3.0 버전이 필요하고, 프로젝트 B는 Django 5.0 버전이 필요할 때, 한 컴퓨터에 모두 설치하면 충돌이 발생합니다. 가상환경은 이 둘을 분리해 줍니다.

  • 깔끔한 시스템 관리: 컴퓨터 자체(Global)에 수많은 라이브러리를 설치하다 보면 시스템이 무거워지고 관리가 어려워집니다. 가상환경을 쓰면 프로젝트 폴더만 삭제해도 관련 라이브러리가 깔끔하게 정리됩니다.

  • 협업의 용이성: requirements.txt나 pyproject.toml을 통해 팀원들과 정확히 동일한 라이브러리 환경을 공유할 수 있습니다.

# 가상환경 생성 (.venv 폴더가 생깁니다)
uv venv

# 가상환경 활성화 (macOS 기준)
source .venv/bin/activate

3. 표준적인 설정 방법과 차이점(?)

"uv는 가상환경을 만드는 '도구(Tool)'일 뿐이며, 그 결과물은 우리가 항상 사용하던 '파이썬 가상환경' 그 자체입니다."

uv venv vs python -m venv

두 명령어는 결과적으로 똑같은 형태의 가상환경 폴더를 만들어냅니다.

  • python -m venv .venv: 파이썬에 내장된 표준 도구로 가상환경을 만듭니다. (속도가 상대적으로 느림)

  • uv venv: Rust로 작성된 초고속 도구인 uv를 사용해 동일한 가상환경을 만듭니다. (비교할 수 없을 정도로 빠름)

3) 패키지 설치 (The Magic)

uv pip는 기존 pip와 완벽히 호환되면서 압도적인 속도를 보여줍니다.

# 무거운 라이브러리들도 순식간에 설치됩니다.
uv pip install numpy pandas torch scikit-learn

💡 Under-the-hood: 왜 이렇게 빠를까?

백엔드 엔지니어로서 기술적 배경을 살짝 짚어보자면:

  • Rust 기반: 인터프리터 언어인 파이썬이 아닌 컴파일 언어인 Rust로 엔진이 작성되었습니다.

  • 글로벌 캐시: 한 번 다운로드된 패키지는 시스템 내 다른 프로젝트에서 재사용될 때 다시 다운로드하거나 복사하지 않고 **심볼릭 링크(Hardlink)**를 활용해 0초 만에 설치를 끝냅니다.


✅ 요약 및 마무리

이제 여러분의 맥북은 다음과 같은 완벽한 계층 구조를 갖게 되었습니다:

  1. Pyenv: 파이썬 버전(Runtime)을 관리 (Java의 SDKMAN 역할)

  2. uv: 패키지 설치 및 가상환경(Venv) 관리 (Gradle/Maven의 속도 강화판)

더 이상 (base) 환경에서 의존성이 꼬여 고생할 필요가 없습니다. 프로젝트마다 독립된 환경을 uv로 초고속으로 구축하세요.

파이썬 환경 설정에 대해 더 궁금한 점이 있거나, 설정 중 에러가 발생한다면 댓글로 알려주세요!


🔗 관련 글 다시보기

More from this blog

[WSL2] Ubuntu 24.04.1 LTS: Zsh & Oh My Zsh 설치 가이드

개발자의 터미널은 단순한 입력창이 아니라, 사고를 코드로 옮기는 가장 빠른 경로여야 합니다. 윈도우 네이티브의 한계를 넘어 리눅스의 강력함을 100% 활용해 봅시다. 1. Zsh 설치 및 기본 쉘 변경 먼저 패키지 관리자를 통해 Zsh를 설치하고, 시스템의 기본 쉘을 Bash에서 Zsh로 전환합니다. # 패키지 업데이트 및 Zsh 설치 sudo apt update sudo apt install zsh -y # 설치 확인 및 경로 파악 whi...

Jan 14, 20262 min read

[WSL2] Windows에 Ubuntu 24.04.1 LTS 설치 및 초기 설정 완벽 가이드

🛠 전제 조건 (Prerequisites) 본 가이드는 독자가 아래의 환경을 이미 갖추고 있다는 전제하에 진행됩니다. (아직 설치 전이라면 먼저 셋업을 완료해 주세요.) Windows 10/11: WSL2를 지원하는 최신 빌드. WSL2 활성화: 커널 업데이트 및 WSL2 기능이 활성화된 상태. Windows Terminal: PowerShell이나 기본 CMD보다 훨씬 생산적인 터미널 환경. 🚀 Ubuntu 24.04.1 LTS...

Jan 14, 20262 min read

[Mac] Python 환경 리빌딩 (1): Python 설정 초기화

안녕하세요. 시니어 백엔드 엔지니어로 살다 보니, 가끔은 코드보다 내 **개발 환경(Local Environment)**이 더 꼬여있다는 걸 깨달을 때가 있습니다. 처음 설치했던 Anaconda(또는 Miniconda). 시간이 지날수록 터미널 왼쪽에 붙어있는 (base)라는 글자와 알 수 없는 패키지 의존성 충돌이 깔끔한 환경을 구축하고 싶은 개발자의 본능을 자극할 때가 있습니다. 오늘은 제 M2 MacBook Pro 16인치에서 묵직하게 자...

Jan 5, 20263 min read

프롬프트 엔지니어링은 '실험 과학'이다: Anthropic의 사고 보고서 분석 가이드

Disclaimer & Source Attribution 이 글은 Anthropic 공식 YouTube 채널의 "Prompting 101 | Code w/ Claude" 세미나 영상과 해당 세션을 공부하며 정리한 개인 학습 노트를 바탕으로 재구성한 내용입니다. 모든 원본 콘텐츠의 저작권은 Anthropic에 있으며, 본 포스팅은 개발자 관점에서의 기술 분석 및 정보 공유를 목적으로 합니다. Original Video: Anthropic - P...

Nov 27, 202510 min read
K

KEV's tech Blog

6 posts