コンテンツにスキップ

開発・管理ツールの変遷

Pythonでの開発を行う上で、下記に示すいくつものツールが存在します。

ツール名 概要 役割
virtualenv 仮想環境管理
venv 仮想環境管理
Pipenv パッケージ管理、プロジェクト管理
Poetry パッケージ管理、プロジェクト管理
Rye パッケージ管理、プロジェクト管理
uv パッケージ管理、プロジェクト管理
pyenv Pythonバージョン管理
ツール名 概要 役割
Black フォーマッタ
yapf フォーマッタ
autopep8 フォーマッタ
Ruff フォーマッタ
pylint リンタ
Flake8 リンタ
isort インポート順の自動ソート

Pythonで開発を行う際には、このツールの中からどの選択肢を取るかを考える必要がありました。 少しずつデファクトスタンダードな構成(1)が固まる流れはありましたが、なお長い期間を要すると思われました。

  1. 筆者の感覚では、下記の構成がデファクト化している印象がありました。
    • パッケージ管理、プロジェクト管理: Poetry
    • Pythonバージョン管理: pyenv
    • フォーマッタ: Black
    • リンタ: Flake8
    • インポート順の自動ソート: isort

しかし近年「uv」と「Ruff」が登場したことで、この複雑さが解消されようとしています。 ここではこれらツールの変遷を紹介しつつ、今後のデファクトスタンダードとなるであろう構成を説明します。

その前にまずは、Pythonで開発をする上で避けては通れない仮想環境(Viertual Environment)について説明します。

標準ツールでの開発環境

  • venvを自分で作る
  • pipでパッケージインストール
  • requirements.txtでパッケージ管理

uv、Ruff登場前の開発環境

uv、Ruffを用いた開発環境