GN⁺: Uv의 킬러 기능은 즉석(ad-hoc) 환경을 쉽게 만드는 것
(valatka.dev)- 성능이나 Python과의 호환성은 uv의 차별점이 아님. uv는 PEPs를 준수하며, Python의 패키지 관리자로서 추천할 만함. 그러나 가장 놀라운 기능은 따로 있음.
- Python 3.12에서 ad-hoc 스크립팅을 할 때, 종종 Pandas와 같은 의존성을 추가해야 할 때가 있음. 일반적인 방법은 다음과 같음:
-
pip install pandas
를 실행하여 전역 환경을 수정하거나 - 가상 환경을 생성하고,
pip install pandas
를 실행하고, 가상 환경을 활성화한 후 Python을 실행하는 것임.
-
- 다른 Python 버전이 필요할 경우,
pyenv
를 사용하여 버전을 설치하고 로컬로 설정해야 함. 최악의 경우:-
pyenv install 3.12
-
pyenv local 3.12
-
python -m venv .venv
-
source .venv/bin/activate
-
pip install pandas
-
python
-
- uv를 사용하면 단 한 줄의 명령어로 가능함:
-
uv run --python 3.12 --with pandas python
- 기억하기 쉽고, 흔적이 남지 않음. 즐거운 스크립팅!
-
Hacker News 의견
-
uv 패키지 관리자를 매우 좋아하며, 커뮤니티의 표준으로 자리 잡았으면 좋겠다는 의견이 있음. 특히 새로운 사용자들에게 추천할 만한 도구임
-
uv는 PEP 723의 인라인 스크립트 종속성을 지원하여 더욱 깔끔한 사용이 가능함
-
NodeJS 개발자로서 Python의 환경 설정 문제 해결이 아직도 안 된 것이 놀라움. Node도 완벽하지 않지만, 전역 환경 수정에 대한 걱정은 없음
-
virtualenv의 활성화가 불필요하며, pyenv 인터프리터 설정 없이도 직접 가상 환경을 생성할 수 있음
-
uv의 단일 도구 실행에 여러 기능이 묶이는 것이 불편하다는 의견이 있음. venv를 활성화하고 여러 번 프로그램을 실행할 수 있는 것이 편리함
-
uv는 uvx 명령어를 포함하여 Python 스크립트를 수동 설치 없이 실행할 수 있음
- 예:
uvx --from 'huggingface_hub[cli]' huggingface-cli
- 예:
-
uv를 좋아하고 곧 사용해보고 싶지만, 기사 내용의 요점을 이해하지 못하겠다는 의견이 있음. pyenv와 poetry로도 로컬 종속성을 가져올 수 있음
-
다른 바이너리 종속성이 있는 경우 Nix와 virtualenv + pip-tools를 사용하는 것이 더 나은 선택일 수 있음
-
"올바른 경로"에서 가상 환경을 먼저 활성화한 후 pandas를 설치해야 한다는 의견이 있음