コンテンツにスキップ

ツール一覧

Python には pip や venv 以外にも開発で使用するツールが多く存在しており、ネットで調べるときに混乱することが多いです。 そこでどんなツールが使われているのかを整理して解説します。

ネットで検索して見つかる Python ツールは、おおむね次の 3 つに分類されます。

  1. Python 自体のバージョンを管理する
  2. 仮想環境を管理する
  3. パッケージやパッケージ間の依存関係を管理する

ツールによっては 2. と 3. の両方をサポートするようなツールもあるため、どういうシーンで利用すればよいのかがわかりにくいところがあります。

ネットで検索して見つかるツールには次のようなものがあります。

ツール Python バージョン管理 仮想環境管理 パッケージ管理 依存関係解決 ロックファイル生成 パフォーマンス 備考
pyenv ✅ ⭐ Python のバージョン管理
venv ✅ ⭐ Python 標準ライブラリ
virtualenv ✅ ⭐⭐ venv で代用可能
pip ✅ ⭐ Python 標準のパッケージ管理
pip-tools ✅ ✅ ✅ ⭐ requirements.txt 強化
pipx ✅(グローバル) ⭐⭐ CLI ツール専用
pipenv ✅ ✅ ✅ ✅ 遅いため最近は非推奨気味
poetry ✅ ✅ ✅ ✅ ⭐⭐ 近年の推奨ツール
rye ✅ ✅ ✅ ✅ ✅ ⭐⭐ 試験的だが統合ツールとして注目
uv ✅(内部で管理) ✅ ✅ ✅ ⭐⭐⭐ pip-tools の超高速代替

どのツールを使うべきか

どのツールを使う場合でも requirements.txt は生成しておくのがベターです (どのツールでも生成コマンドが用意されています)。 requirements.txt があれば、Python の標準機能である pip を使ってパッケージのインストールができるようになるためです。

requirements.txt さえ生成していれば、どのツールを使ってもよいですが、使い分けのおおまかな方針は次のようになります。

シンプルな開発

  • venv + pip (標準機能)
  • pip-tools (依存関係を固定したい場合)

より便利な管理を求める場合

  • poetry (仮想環境+パッケージ管理)
  • pipx (CLI ツール管理)

最新のトレンドを取り入れたい場合

  • rye (統合環境管理の試験的ツール)
  • uv (超高速なパッケージ管理)

Python のバージョン管理をしたい場合

  • pyenv (複数の Python バージョンを使いたい場合)