| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | |||||
| 3 | 4 | 5 | 6 | 7 | 8 | 9 |
| 10 | 11 | 12 | 13 | 14 | 15 | 16 |
| 17 | 18 | 19 | 20 | 21 | 22 | 23 |
| 24 | 25 | 26 | 27 | 28 | 29 | 30 |
| 31 |
- cross-origin isolated
- vscode
- Python Install Manager
- Thinking Mode
- ndjson
- Vite
- Docker Compose
- curl
- Typescript
- secure context
- 이미지
- docker
- PowerShell
- podman
- uv pin
- cli
- Java
- tauri
- UV
- Python
- json
- Ollama
- yaml
- SharedArrayBuffer
- json schema
- vim
- io
- Webpack
- RandomAccessFile
- uv init
- Today
- Total
워로디스
Python. Python Install Manager 와 uv 운용 본문
Python Install Manager는 주로 Windows에서 Python 런타임을 설치·관리하는 공식 도구이고, uv는 패키지/프로젝트/가상환경 관리 도구이면서 필요하면 Python 자체도 설치할 수 있습니다. Python.org는 Python Install Manager를 Windows용 런타임 관리 도구로 설명하고 있고, uv도 기존 Python을 감지해 쓰거나 필요 시 자체 관리 Python을 설치할 수 있다고 설명합니다. (Python.org) (Astral Docs)
문제가 생길 수 있는 지점은 보통 세 가지입니다.
첫째, python, py, python3.12 같은 명령이 어느 설치본을 가리키는지 불명확해질 수 있습니다. uv는 기본적으로 기존 Python이 있으면 감지해 사용할 수 있고, 자체 관리 Python도 설치할 수 있습니다. 또한 uv가 설치한 Python 실행 파일도 PATH에 들어갈 수 있습니다. (Astral Docs) (Astral Docs)
둘째, 프로젝트마다 의도한 Python 버전과 실제 사용 버전이 달라질 수 있습니다. 예를 들어 Python Install Manager로 설치한 3.12와 uv가 관리하는 3.13이 같이 있으면, uv venv, uv sync, uv run이 선택하는 인터프리터가 기대와 다를 수 있습니다. 이 경우 .python-version이나 uv python pin 3.12처럼 프로젝트 단위로 버전을 고정하는 게 좋습니다. uv는 .python-version을 보고 해당 버전을 설치/사용할 수 있습니다. (Astral Docs)
셋째, Windows에서는 py 런처/Install Manager/uv의 Python discovery가 겹치면서 드물게 이상 동작이 보고된 적이 있습니다. 예컨대 Python Install Manager 환경에서 uv python list나 uv run python --version 실행 시 Python 문서 페이지가 열리는 이슈가 보고된 사례가 있습니다. 일반적 충돌이라기보다는 발견/런처 동작의 엣지 케이스에 가깝습니다. (GitHub)
추천 운영 방식은 둘 중 하나입니다.
1. Python Install Manager는 “시스템 Python 설치용”, uv는 “프로젝트/패키지/venv 관리용”으로 쓰기
py --list
uv python list
uv venv --python 3.12
uv sync
uv run python --version
이 방식에서는 Python 자체는 공식 관리자에 맡기고, uv는 가상환경과 의존성 관리에 집중시킵니다. uv가 자체 Python을 자동으로 받는 게 싫으면 다음 옵션을 씁니다.
uv venv --no-managed-python
uv run --no-managed-python python --version
2. uv에 Python 버전까지 맡기기
uv python install 3.12 3.13
uv python pin 3.12
uv sync
uv run python --version
이 방식은 프로젝트별 재현성이 좋습니다. 다만 Python Install Manager로 설치한 Python과 uv-managed Python이 같이 있으면 python 명령의 우선순위가 헷갈릴 수 있으니, 프로젝트 안에서는 가급적 python 직접 실행보다 uv run python을 쓰는 편이 안전합니다.
가장 안전한 체크리스트는 아래입니다.
where python
where py
where uv
py --list
uv python list
uv run python --version
그리고 프로젝트 루트에 고정합니다.
uv python pin 3.12
uv sync
Windows라면 Python Install Manager로 기본 런타임을 설치하고, 프로젝트별 실행·가상환경·의존성은 uv로 관리하는 조합이 가장 덜 헷갈립니다. 프로젝트 재현성을 더 중시하면 Python 버전 관리까지 uv로 통일하는 쪽이 낫습니다.
'개발 > Python' 카테고리의 다른 글
| Python. uv init --python 3.12 와 uv python pin 3.12 의 차이 (0) | 2026.05.24 |
|---|---|
| Python sys.path 를 사용해서 특정 경로 파일 임포트 (0) | 2026.05.03 |
