以下の内容はhttps://blog.mtb-production.info/entry/2025/09/18/193000より取得しました。


uvのワークスペース機能を調べてみた

uv を使っているプロジェクトの pyproject.toml[tool.uv.workspace] という指定があった。これ、なんだろう?ということで調べてみた。

uv にはワークスペース機能がある

docs.astral.sh

一つのライブラリの中で、複数のuvプロジェクトを作って管理できる。依存ライブラリを一つのリポジトリに入れて、管理できる、らしい。

私がみた記載の例

[tool.uv.workspace]
members = ["hogehoge/fugafuga"]

これは以下を指す様子。

  • hogehoge/fugafuga というサブプロジェクトがワークスペースのメンバーとして登録されている
  • このサブプロジェクトは独自の pyproject.toml を持っている。(はず)
  • ルートと hogehoge/fugafuga で依存関係のロックファイル(uv.lock)を共有する

感想

なるほどなー。 そういえば、最近、モノレポが流行ってるような気もするし、そういう流れも影響を受けているのだろうか。

最近、LlamaIndexを改めて触っているが、LlamaIndexはモノレポだったな、と思ったので、uvを使ってるかを調べてみました。(AIに調べさせた)

すると以下の記事スレッドがヒットしました。

news.ycombinator.com

www.llamaindex.ai

まとめると、以下です。

  • LlamaIndexは、以前はPoetry + Pantsを使用していた。今はuv + 独自ツール(LlamaDev)に移行している。
  • LlamaIndexのリポジトリではuvのワークスペースは使えなかった。理由は、uvのワークスペースは、全ての依存関係が互いにパッケージバージョンを合意する必要があるため。

なるほどなー。アプリケーションサービスとかだと合意できそうですが、大きなライブラリ・フレームワークだと難しいんでしょうね。




以上の内容はhttps://blog.mtb-production.info/entry/2025/09/18/193000より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14