「cannot import name 'cached_download' from 'huggingface_hub'」の直し方

diffusers や transformers を import すると、こう止まることがある。

ImportError: cannot import name 'cached_download' from 'huggingface_hub'

原因はバージョンの不整合だ。新しい huggingface_hub では cached_download が削除されており、それを参照している古い diffuserstransformers が読み込みに失敗している。

まとめて最新に上げる

いちばん確実なのは、関連ライブラリを揃えて最新にすることだ。

Terminal window
pip install -U huggingface_hub transformers diffusers

これで、新しいAPIに対応したバージョン同士になり、参照のずれが解消する。

仮想環境の混線を疑う

入れ直しても直らないなら、複数のPython環境が混ざっている可能性がある。実行しているPythonでバージョンを確認する。

Terminal window
python -c "import huggingface_hub, transformers, diffusers; print(huggingface_hub.__version__, transformers.__version__, diffusers.__version__)"

ここで古い版が出るなら、別の環境に入れてしまっている。python -m pip install -U ... で、その実行Pythonに入れ直す。

古いコードを動かしたい場合

どうしても古い diffusers/transformers を使う必要があるなら、huggingface_hub をその時代の対応版にピンする手もある。ただし基本は、コードごと最新に上げるほうが安全だ。

まとめ

  • 原因は huggingface_hub と diffusers/transformers のバージョン不整合
  • まず3つまとめて -U で最新化
  • 直らなければ実行Pythonのバージョンを確認(環境の混線)
  • 古いコード固定が必要なときだけ huggingface_hub をピン