uv와 PEP 723의 조합
우연히 geeknews에서 'uv와 PEP 723으로 Python 스크립트 활용하기'란 글을 봤다.
uv와 PEP 723으로 Python 스크립트 활용하기 | GeekNews
uv 패키지 매니저와 PEP 723을 통해 의존성 문제 없이 Python 스크립트 실행이 가능해짐uvx 기능은 Disposable 가상환경을 자동 생성하여 환경 설정의 불편함을 해결함PEP 723 메타데이터를 Python 파일에 포함하면 스크립트 자동 실행 및 패키지 관리가 편리해짐실행 스크립트 예시로 YouTube 자막 추출 프로그램을 빠르게 구현 및 배
파이썬 스크립트를 의존성 문제 없이 바로 실행할 수 있다고? 이건 바로 해봐야 한다.
#!/usr/bin/env -S uv run --script
# /// script
# requires-python = ">=3.13"
# dependencies = [
# "python-frontmatter",
# ]
# ///
import os
import re
from time import sleep
import frontmatter
어렵지 않다. 첫 라인의 shebang을 python
대신 uv
로 바꾼다.
(물론 미리 uv
를 설치해야 한다)
그 아래로는 PEP 723에 정의한 대로 의존성 패키지를 정의한다. (dependencies = [ ... ]
부분)
그 다음에는 스크립트 파일에 실행 permission을 준 다음 실행하면 끝이다. uv
에서 알아서 패키지를 설치해준다.
터미널에서 쉘 명령 실행하는 수준의 간단한 파이썬을 스크립트를 실행하고 싶을 뿐인데
무작정 실행했다가 No module named '어쩌고 저쩌고'
메시지를 맞닥뜨린 다음에야 부랴부랴 pip
로 해당 패키지를 설치하는 시행착오를 겪거나
아니면 일일이 프로젝트를 구성하거나 requirements.txt
파일을 작성하는게 번거로웠다.
하지만 uv
를 이용하면 파이썬 실행 스크립트 파일 안에 필요한 패키지를 명시하는 것으로 번거로운 추가 작업 없이 실행하는 순간에 알아서 패키지 설치까지 완료하니 아주아주 편해졌다.
(물론 처음 실행할 때 시간이 더 걸리지만 이 정도는 감내해야...)
— END OF POST.