0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

#0092(2025/04/04)高速パッケージマネージャ uvのススメ

Posted at

高速パッケージマネージャ uvのススメ

仮想環境に venvconda を使い、パッケージ管理は主に pip を利用しているかと思います。この記事では、新たな選択肢として注目されている高速パッケージマネージャ uv を紹介します。

uvとは?

uv は、Rustで書かれた高速かつ安全なPython向けパッケージマネージャで、従来の pipvirtualenv を置き換えることを目的として作られています。

uvの特長は以下の通りです。

  • 高速な依存関係の解決(Rust製でスピードが段違い)
  • キャッシュを効率的に使うことで、パッケージインストールを大幅に高速化
  • PEP582対応で、プロジェクト内にパッケージを管理することも可能

uvと既存技術(venv, pip)の違い

項目 venv + pip uv
仮想環境の作成 python -m venv uv venv
パッケージ管理 pip install uv pip install
依存関係管理 requirements.txt pyproject.toml + requirements.lock
速度 通常速度 非常に高速
キャッシュ機構 一般的 強力(再インストールが高速化)

uvは従来のワークフローをほぼそのまま維持しつつ、スピードと信頼性を向上させたツールです。

uvは誰が作ったのか?

uvはPython開発ツールのエコシステムで注目されている astral.sh によって作られています。astral.sh は他にも高速Pythonリンターとして有名な Ruff や、モダンなPython開発環境の PDM を開発しているチームです。

uvの使い方の例

実際の使用例を見てみましょう。

仮想環境を作る

uv venv
source .venv/bin/activate

パッケージをインストール

uv pip install numpy pandas

インストールしたパッケージを確認

uv pip list

インストールしたパッケージをrequirements.txtに書き出す

uv pip freeze > requirements.txt

pyproject.tomlを使った依存関係の管理(応用編)

以下のようなシンプルな pyproject.toml を作成しておけば、

[project]
name = "myproject"
version = "0.1.0"
dependencies = [
  "numpy",
  "pandas"
]

uvで簡単に依存関係を同期できます。

uv sync

良く使うuvのコマンドまとめ

コマンド 説明
uv venv 仮想環境を作成
uv pip install <pkg> パッケージをインストール
uv pip uninstall <pkg> パッケージをアンインストール
uv pip list パッケージの一覧表示
uv pip freeze requirements.txt 形式で出力
uv sync pyproject.toml に従ってパッケージを同期
uv cache clear キャッシュをクリア

まとめ

uvを使えば、普段のPython開発の速度を劇的に向上させられます。venvpip に慣れているエンジニアこそ、その恩恵を感じやすいはずです。ぜひuvを試して、その快適さを実感してみてください!

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?