コンテンツにスキップ

ModuleNotFoundError: No module named 'blinker._saferef'

Pythonの環境構築において selenium-wire を利用した際に ModuleNotFoundError: No module named 'blinker._saferef' というエラーが発生する場合、依存パッケージである blinker のバージョン(1.8系以降)で _saferef.py が削除されたことが原因である。これを解決するには、blinker1.7.0 にダウングレードする必要がある。

自作の楽天ポイ活ツールを開発するため、Pythonのバージョンを上げて新たな環境を構築した。selenium-wire をインストール後、ツールを実行したところ以下のようなエラーが出力されて起動に失敗した。

Terminal window
ModuleNotFoundError: No module named 'blinker._saferef'

このエラーは selenium-wire と直接的な依存関係にある blinker というモジュールに起因している。blinkerのリリースノートを確認すると、最近のバージョンアップ(1.8.x系)によって内部構造が整理され、_saferef.py というファイルが削除されていた。

selenium-wire 側が古い blinker の内部モジュール(_saferef)を呼び出そうとしているため、見つからずにエラーが発生している状態である。

この問題を根本的に解決するためには、blinker_saferef.py が存在していた最後の安定バージョンである 1.7.0 にダウングレードする。

Terminal window
pip install blinker==1.7.0
  • selenium-wire 実行時の blinker._saferef エラーは、blinker 1.8系での破壊的変更(モジュール削除)が原因である。
  • 回避策として、pip install blinker==1.7.0 を実行し、パッケージを明示的にダウングレードすることで正常に動作するようになる。

最終更新日:

他の記事を探す