657 文字
3 分

Fairseqを利用したRVCアプリのGradio v5アップグレードに伴う依存関係エラーとその対策

要旨#

  • 目的:Hugging Face Spaces 上の RVC アプリで Gradio を v3 から v5 へ更新。
  • 事象:pip install 時に omegaconf==2.0.6 の依存関係エラーでビルド失敗。
  • 結論:根本原因は開発停止した fairseq の古い依存関係。回避策として pip のバージョンを固定して対応。

問題#

まずローカルでアプリの Gradio を v3 から v5 に更新、動作確認を行った。

そして次のコマンドを実行し、Hugging Face Spaces 用に requirements.txt を生成した。

Terminal window
uv pip compile pyproject.toml -o requirements.txt

これらの変更を Hugging Face にプッシュしたところ、ビルド時に次のエラーが発生した。

WARNING: Ignoring version 2.0.6 of omegaconf since it has invalid metadata:
...
Please use pip<24.1 if you need to use this version.
...
ERROR: No matching distribution found for omegaconf==2.0.6

原因#

直接的な原因は、Hugging Face 環境のデフォルト pip(24.1 以上)が、omegaconf 2.0.6 の古いパッケージメタデータ(.* suffix)を不正として処理、同バージョンを無視するためインストール失敗することであるとエラーから推測できる。

一方、requiments.txt を見ると fairseq 0.12.2 が hydra-core 1.0.7 に依存し、hydra-core 1.0.7 が omegaconf 2.0.6 が依存していることが分かる。つまり根本的な原因は Hugging Face 環境の pip の更新により fairseq 0.12.2 が抱えていた古い依存関係の問題が顕在化したことだと考えられる。

回避策:pip のバージョン固定#

Huggin Face Spaces ではpre-requirements.txtを作成し、次のように pip などのバージョンを指定できる。

pip<24.1

この変更を実際に試すと、アプリのビルドが成功することが確認できた。

根本的な解決の探求#

omegaconfのメタデータ問題はバージョン 2.3.0 以降で解消されている。

そこで、omegaconfのバージョンを 2.3.0 以降に指定することで解消できないか試みた。しかし、fairseq及びhydra-coreは 2.1 未満のomegaconfに依存しているため、次のように依存関係のコンフリクトが発生する。

fairseq 0.12.2 depends on omegaconf<2.1 hydra-core 1.0.7 depends on omegaconf<2.1 and >=2.0.

さらに、fairseqライブラリ自体の開発が長らく停止しているため、新しい omegaconf に対応した fairseq の公式リリースは今後も期待できない。

結論#

fairseqが開発停止しているため、依存関係の根本解決はfairseqを利用し続ける限り不可能。現実的な解として、回避策である pip のバージョン固定が最適と判断した。

余裕があればfairseqの代替として、 公式の後継であるfairseq2や Hugging Face のtransformersなどがあるため、これらへの移行を検討したい。

Fairseqを利用したRVCアプリのGradio v5アップグレードに伴う依存関係エラーとその対策
https://blog.ohirunewani.com/posts/python-gradio-fairseq-on-huggingface/
作者
hrdtbs
公開日
2025-06-22
ライセンス
CC BY-NC-SA 4.0