네, 당연히 가능합니다! 기존 프로젝트에서 requirements.txt를 사용 중이었다면, uv는 이를 아주 스마트하게 흡수하여 pyproject.toml 기반의 현대적인 프로젝트로 전환해 줍니다.

상황에 따라 두 가지 방법으로 사용할 수 있습니다.


1. requirements.txt의 내용을 프로젝트 의존성으로 추가하기

기존의 파일 내용을 읽어서 pyproject.toml[project.dependencies] 항목에 한꺼번에 등록하고 싶을 때 사용합니다.

1
2
3
# requirements.txt에 적힌 모든 패키지를 현재 프로젝트에 추가
uv add -r requirements.txt

  • 작동 방식: uv가 파일을 읽어 패키지 목록을 파악한 뒤, 최적의 버전을 계산하여 pyproject.toml에 기록하고 가상환경에 설치합니다.

2. requirements.txt 파일을 그대로 사용하여 패키지만 설치하기

프로젝트 구조를 바꾸지 않고, 단순히 가상환경에 패키지만 빠르게 깔고 싶을 때 사용합니다. (기존 pip install -r의 초고속 버전이라고 보시면 됩니다.)

1
2
3
# 가상환경에 패키지만 설치 (pyproject.toml 기록 안 함)
uv pip install -r requirements.txt

  • 작동 방식: pyproject.toml은 건드리지 않고, 지정된 가상환경에 패키지만 즉시 설치합니다.

3. uv와 기존 pip의 관리 방식 차이

특징 requirements.txt (기존) uv / pyproject.toml (현대적)
파일 성격 단순 패키지 나열 리스트 프로젝트 설정 및 메타데이터 포함
의존성 해결 설치 순서에 따라 충돌 가능성 있음 모든 패키지 관계를 계산하여 최적화
잠금 파일 보통 없음 (필요 시 pip freeze) uv.lock 파일이 모든 버전 고정

💡 유용한 팁: 반대로 내보내기

uv를 사용 중인데, 아직 uv를 쓰지 않는 서버나 동료를 위해 다시 requirements.txt를 만들어야 한다면 아래 명령어를 사용하세요.

1
2
3
# 현재 프로젝트의 lock 파일을 기반으로 requirements.txt 생성
uv export --format requirements-txt > requirements.txt

결론적으로:

기존 프로젝트를 uv로 마이그레이션하고 싶다면 uv add -r requirements.txt를 적극 추천합니다. 이렇게 하면 이후부터는 requirements.txt 관리의 고통에서 벗어나 pyproject.toml 하나로 모든 것을 관리할 수 있게 됩니다!

혹시 requirements.txt에 특정 버전이 복잡하게 꼬여 있나요? uv는 그 충돌을 찾는 속도도 굉장히 빠르니 바로 시도해 보세요.

tool

1
~$ uv tool install open-webui

Remove unused cache entries:
bash
uv cache prune

코드를 사용할 때는 주의가 필요합니다.

Clear the entire cache directory:

bash
uv cache clean

코드를 사용할 때는 주의가 필요합니다.

rm -rf “$(uv tool dir)”

powershellRemove-Item -Recurse -Force (uv tool dir)

Author

Gangtai Goh

Posted on

2026-05-24

Updated on

2026-05-29

Licensed under