본문 바로가기

프로그래밍/Python

[python] macos 파이썬환경, pyenv, venv, uv

pyenv

여러 버전의 파이썬 설치를 위해 pyenv 사용

brew install pyenv

 

zshrc 수정

echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zshrc
echo '[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zshrc
echo 'eval "$(pyenv init - zsh)"' >> ~/.zshrc

 

 

파이썬 버전 목록 확인

pyenv install --list

 

 

파이썬 설치

pyenv install 3.12

 

 

설치된 버전 확인

pyenv versions

 

 

파이썬 버전 선택

pyenv global 3.12.11

 

 

 

venv

가상환경은 python 에 포함된 venv 사용

python -m venv .venv
source .venv/bin/activate

 

 

 

uv

rust 작성되어 pip 보다 빠른 패키지 설치 및 관리 툴인데, 파이썬 버전 관리 기능도 포함되어 있어 최근에는 uv만 사용

설치

brew install uv

 

 

파이썬 버전 조회 및 파이썬 설치

uv python list
uv python install 3.12
uv python uninstall 3.12

 

 

현재 프로젝트 폴더에 uv 초기화

uv init

pyproject.toml, requirements.txt, uv.lock, .venv 등 생성

 

 

가상환경 생성, 활성화, 비활성화

패키지 설치시에 자동으로 가상환경이 생성되나 필요시 직접 생성

uv venv
uv venv --python 3.12
uv venv --name .venv
uv venv --clear

source .venv/bin/activate

deactivate

 

 

의존성

의존성 추가

uv add {package}
uv add {package}==1.0.0
uv add --dev {package}

uv pip install {package}
uv pip install {package}>=1.0.0
uv pip install -r requirements.txt

uv add 를 사용해야 uv 의존성 관리가 동작하고, 단순 설치는 uv pip install 사용

 

 

의존성 제거

uv remove {package}
uv remove --dev {package}
uv pip uninstall {package}

 

 

의존성 저장

uv 가 관리하는 패키지는 pyproject.toml, uv.lock에서 관리되는데, uv pip install 로 설치한 패키지는 별도 관리됨.

uv sync 시 uv 가 관리하지 않는 패키지들은 초기화될 수 있으므로, 해당 패키지는 별도 파일인

requirements.txt 등으로 저장해 두어야 함.

 

전체 패키지 목록

uv pip freeze > requirements.txt

 

uv 패키지 목록

uv export -o requirements.txt

 

 

 

uv 의존성 동기화

pyproject.toml, uv.lock 파일을 기반으로 가상환경을 재구성

uv lock
uv lock --dev

uv sync
uv sync --dev

 

 

스크립트 실행

uv run main.py

uv run main.py --arg1 value1 --arg2 -value2
uv run --env VAR1=value --env VAR2=value main.py

uv run --python 3.12 main.py
uv run --python 3.12 -m {package}