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