ツール一覧¶
Python には pip や venv 以外にも開発で使用するツールが多く存在しており、ネットで調べるときに混乱することが多いです。 そこでどんなツールが使われているのかを整理して解説します。
ネットで検索して見つかる Python ツールは、おおむね次の 3 つに分類されます。
- Python 自体のバージョンを管理する
- 仮想環境を管理する
- パッケージやパッケージ間の依存関係を管理する
ツールによっては 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 バージョンを使いたい場合)