Closed5
Rye & uv 時代の Python プロジェクト管理系ツールまとめ
Rye & uv が登場して混沌としていた Python のプロジェクト管理系ツールが一蹴されそうな感じがしてます。
ただし Rye 単体では「個人的な」要件を「完全には」満たせないので、今一度 Rye & uv 時代のプロジェクト管理ツールをまとめてみます。
ちなみに「Rye & uv 時代以前」のプロジェクト管理系ツールまとめはこちらの記事たちが大変分かりやすいです。
やりたいこと
これは独断と偏見です 。
-
MUST (絶対必要な機能)
-
pyproject.toml
と[project]
テーブルに準拠している (PEP 518 と PEP 621) - ローカルでの複数 Python バージョンのテスト実行
-
-
POSSIBLE (出来れば欲しい機能)
-
uv
による仮想環境管理バックエンド
-
-
MAY (あってもいい機能)
-
python-build-standalone
(自動で Python バイナリをダウンロードする) - ロックファイル
-
満たされていること
- テスト
-
pytest
で充分だと思っています
-
- リント & フォーマット
-
ruff
で充分だと思っています
-
ライブラリ開発
ライブラリ開発なら Hatch で良さそうです。
今現在は uv
は対応してないですが Issue を見る限りメンテナは前向きなのでその内対応するでしょう。 ロックファイルはデフォルトサポートは見えなさそうですが、プラグインなら対応できそうです。 テストランナー自体も Hatch で簡潔してしまうのは魅力的です!
OSS として世に公開するのはライブラリが多いのでこれからは Hatch にお世話になると思います。 uv
サポートが待ち遠しいです 😊
アプリケーション開発
アプリケーション開発ならデフォルトサポートのロックファイルが欲しいです。
-
uv
をデフォルトサポートする Rye -
tox
ornox
との親和性が高そう [1] な PDM
PDM は uv
サポートはまだなさそうなので、それを使いたいなら Rye になるでしょう。 ただ Rye の管理する Python インタプリタを tox
or nox
に伝えるには現時点ではちょっとしたハックが必要そう [2] です。 それが面倒に思うなら uv
は使えないですが適切なテストランナーサポートが得られる PDM を利用するのが良さそうです。
このスクラップは1ヶ月前にクローズされました