Python – uv でスクリプトを実行する

概要

この記事では、Python のパッケージ・プロジェクト管理ライブラリ uv で単体で動作するスクリプトを作成、実行する方法について解説します。

uv によるスクリプトの実行

依存関係のないスクリプトの実行

スクリプトに依存関係がない場合は、次のように実行できます。

uv run example.py
Bash
example.py
print("Hello world")
Python

依存関係があるスクリプトの実行

スクリプトに他のパッケージが必要な場合は、スクリプトが実行される環境にインストールする必要があります。 --with オプションで動作に必要なパッケージ名を指定します。

uv run --with rich example.py
Bash
example.py
import time
from rich.progress import track

for i in track(range(20), description="For example:"):
    time.sleep(0.05)
Python

インラインメタデータ形式を使用する

uv では、単一の Python スクリプトの依存関係などのメタデータをスクリプト内に直接記述できる インラインスクリプトメタデータ をサポートしています。 uv add --script <SCRIPT> <PACKAGE> でスクリプトに使用するパッケージの情報を追加できます。

uv add --script example.py 'requests<3' 'rich'
Bash

実行すると、ファイル上部に以下のようにメタ情報が追加されます。

example.py
# /// script
# requires-python = ">=3.12"
# dependencies = [
#     "requests<3",
#     "rich",
# ]
# ///
import time

from rich.progress import track

for i in track(range(20), description="For example:"):
    time.sleep(0.05)
Python

メタデータを持つスクリプトファイルを実行する場合は、--with で依存パッケージを指定する必要がなくなります。

uv run --with rich example.py
Bash

Python バージョンを指定して実行

uv run --python <VERSION> <SCRIPT> でスクリプトを実行する Python のバージョンを指定できます。

uv run --python 3.11 example.py
Bash
example.py
import sys

print(".".join(map(str, sys.version_info[:3])))
Python

コメント

コメントする