1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Python】uv使ってみた

Last updated at Posted at 2025-09-23

はじめに

uv は Python のパッケージ管理やプロジェクト管理、仮想環境構築などを簡単に行うためのツールです。

この記事では以下について書きます。

  • 初めて uv を使うときにやること
  • uv でスクリプトを実行する
  • uv で Python バージョンを指定する

環境

WSL2
Ubuntu 22.04.5

初めて uv を使うときにやること

uv をインストールします。

curl -LsSf https://astral.sh/uv/install.sh | sh

インストールされたことを確認します。

$ uv -V
uv 0.8.20

ディレクトリを作成し、そこで初期化コマンドである uv init を実行します。

mkdir uv-demo
cd uv-demo
uv init

実行後、main.py や pyproject.toml などが作成されます。

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

自動で作成された以下の main.py を実行します。

main.py
def main():
    print("Hello from uv-demo!")


if __name__ == "__main__":
    main()

uv run により仮想環境が自動で作成され、スクリプトが実行されます。

$ uv run main.py
Using CPython 3.10.12 interpreter at: /usr/bin/python3.10
Creating virtual environment at: .venv
Hello from uv-demo!

uv run python -m によりモジュールとして実行されます。

$ uv run python3 -m main
Hello from uv-demo!

依存関係がある場合

以下のようにサードパーティーライブラリがある場合、pyproject.toml に記載します。

main.py
import requests

def fetch_data(url):
    response = requests.get(url)
    print(f"Response status: {response.status_code}")

def main():
    print("Hello from uv-demo!")
    fetch_data("https://example.com")

if __name__ == "__main__":
    main()
pyproject.toml
[project]
name = "uv-demo"
version = "0.1.0"
description = "Add your description here"
readme = "README.md"
requires-python = ">=3.10"
dependencies = [
  "requests>=2.32.5"  # ここに記載
]

その後 uv run で実行すると依存関係を解決してからスクリプトが実行されます。このとき自動で uv.lock というファイルが作成されます。

$ uv run main.py
Installed 5 packages in 28ms
Hello from uv-demo!
Response status: 200

手動で uv.lock を作成するには以下のコマンドを実行します。

uv lock

uv.lock をバージョン管理している場合は、以下のコマンドにより uv.lock から依存関係をインストールします。

uv sync

pyproject.toml 更新後、uv.lock を更新するには以下のコマンドを実行します。

uv lock --upgrade

インストールされたライブラリ一覧を表示するには以下のコマンドを実行します。

$ uv pip list
Package            Version
------------------ --------
certifi            2025.8.3
charset-normalizer 3.4.3
idna               3.10
requests           2.32.5
urllib3            2.5.0

Python バージョンを指定する

これまでは python3.10 を使用していましたが、python3.12 を使用してみます。まずは既存の .venv と uv.lock を削除します。

rm -rf .venv uv.lock

以下のコマンドで特定の Python バージョンをインストールします。

uv python install 3.12

pyproject.toml を以下のように書き換えます。

pyproject.toml
[project]
name = "uv-demo"
version = "0.1.0"
description = "Add your description here"
readme = "README.md"
- requires-python = ">=3.10"
+ requires-python = ">=3.12"
dependencies = [
  "requests>=2.32.5"
]

.python-version も使用するバージョンに書き換えます。

.python-version
- 3.10
+ 3.12

Python バージョンを確認します。

$ uv run python -V
Python 3.12.11

参考

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?