「cannot import name 'cached_download' from 'huggingface_hub'」の直し方
diffusers や transformers を import すると、こう止まることがある。
ImportError: cannot import name 'cached_download' from 'huggingface_hub'原因はバージョンの不整合だ。新しい huggingface_hub では cached_download が削除されており、それを参照している古い diffusers や transformers が読み込みに失敗している。
まとめて最新に上げる
いちばん確実なのは、関連ライブラリを揃えて最新にすることだ。
pip install -U huggingface_hub transformers diffusersこれで、新しいAPIに対応したバージョン同士になり、参照のずれが解消する。
仮想環境の混線を疑う
入れ直しても直らないなら、複数のPython環境が混ざっている可能性がある。実行しているPythonでバージョンを確認する。
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 をピン