반응형
Python 패키지 관리를 위해 uv를 사용하다가 3시간 동안 삽질한 경험을 공유하고자 합니다. 새로운 파이썬 가상환경을 만들었는데도 패키지 설치가 계속 실패하는 상황이었는데, 알고 보니 uv의 workspace 개념 때문이었습니다.
문제 상황
제가 겪은 디렉터리 구조는 다음과 같았습니다. 언뜻 보기에는 별개의 두 uv 프로젝트처럼 보이지만, 실제로는 그렇지 않았습니다.
parent-directory/
├── pyproject.toml
├── uv.lock
└── child-directory/
└── pyproject.toml
uv Workspace란?
uv에서는 workspace라는 개념이 있습니다. uv 프로젝트 하위에 또 다른 uv 프로젝트를 생성하면, 하위 프로젝트는 자동으로 상위 프로젝트의 workspace 멤버가 됩니다.
- uv workspace 특징
- 하위 프로젝트는 상위 프로젝트의
uv.lock
파일을 공유합니다 - 상위 프로젝트의 의존성 관리 정책을 따라갑니다
- 상위 프로젝트의
pyproject.toml
에 자동으로 workspace 멤버로 등록됩니다
- 하위 프로젝트는 상위 프로젝트의
실제로 상위 디렉터리의 pyproject.toml
을 확인해보면, [tool.uv.workspace]
섹션에 하위 프로젝트가 자동으로 추가된 것을 볼 수 있습니다.
[project]
name = "feature-store"
version = "0.1.0"
description = "Add your description here"
readme = "README.md"
requires-python = ">=3.12"
dependencies = [
"feast>=0.49.0",
]
[tool.uv.workspace]
members = [
"01_feast",
]
문제의 원인
결국 제가 3시간 동안 파이썬 패키지를 설치못한 이유는, uv 프로젝트가 uv workspace로 취급되어 workspace 파이썬 패키지 목록을 공유받았습니다. 공유받은 파이썬 패키지와 새로 설치하려고 하는 파이썬 패키지가 충돌되어 설치를 실패했습니다.
해결방법
저의 상황을 해결하려면
- workspace에서 파이썬 패키지 충돌 문제를 해결하거나
- workspace에서 uv프로젝트를 제거하면 됩니다.
저는 workspace에서 uv프로젝트를 제거했습니다.
Lesson Learn
uv workspace개념을 처음 알게되었고 uv로 파이썬 패키지 설치가 오류났을 경우 workspace의 유/무를 확인할 수 있는 좋은 경험이 되었습니다.
반응형
'전공영역 공부 기록' 카테고리의 다른 글
Datadog cloudwatch 메트릭기반 알람의 주의사항 (2) | 2025.07.06 |
---|---|
Datacamp 1년 구독 시작 (3) | 2025.07.06 |
kubernetes pod가 GPU를 사용하는 원리 그리고 쿠버네티스 설정 (0) | 2025.06.22 |
nvidia-smi 명령어로 nvidia GPU 상태 모니터링 (0) | 2025.06.19 |
nvidia GPU operator는 Amazon Linux에 GPU driver설치를 지원하지 않는다. (1) | 2025.06.15 |