M1 Mac Big surとChromeDriverとPythonのバージョンを放置した結果エラー祭りseleniumが動くまで。

久しぶりにPythonを使ってseleniumを使おうとしたところ以下のエラーが発生しました。

selenium.common.exceptions.SessionNotCreatedException: Message: session not created: This version of ChromeDriver only supports Chrome version 85

前にもみたことがあったので、はいはいとChromeDriverのバージョン通りのものを設置するもなおらない。

webdriver-managerを使う

最近はwebdriver-managerを使うらしいとのことでインストールしてみる。

pip install webdriver-manager

そしてPython側のコードも以下のように変更してみた。

from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager driver = webdriver.Chrome(ChromeDriverManager().install())

するとこんなエラーがでる。

from webdriver_manager.driver import ChromeDriver
  File "/Users/user/.pyenv/versions/3.5.0/lib/python3.5/site-packages/webdriver_manager/driver.py", line 77
    self.auth_header = {'Authorization': f'token {self._os_token}'}

調べるとPythonは3.6以上にするとこのsyntaxエラーは消えるよとのことだった。

現在のPythonのバージョンは3.5.0だった。

Pythonのバージョンをあげる

pyenvを使って最新と思われる3.7.4に上げようとしたら以下がでる。

BUILD FAILED (OS X 11.4 using python-build 20180424)

MacがM1でBig Surだとこの現象が起きている人が多いらしい。このエラーで検索して載っている解決策は一通り試したが、まったく改善されなかった。(x-codeとか)

もういいやとPythonを直接サイトからダウンロードしてパッケージを解凍してIDLEで作業しようと思ったら、今度はseleniumを認識してくれない。

ModuleNotFoundError: No module named 'selenium'

なぜだ。IDLE側のshellは使いものにならないし(使い方しらないだけかもしれない)。

ターミナル上でPythonをダウンロードする方針に切り替えて再び調査。

pythonのバージョンがアップデートできないのはpyenvが原因だった

pyenvでダウンロードできる一覧を出した時にネット民の人より少ないことが気になっていたのでpyenv のアップグレードを試みる。

参考サイト:https://www.ganbaru.life/?p=990

いろいろなやり方があったが、上記サイトの方法以外ではアップデートできなかったのでなんとか命びろい。

pyenvのアップデートに成功したらPythonのバージョンも3.7.4以上がでてきたので最新の3.10.2にしてみた。

無事にインストールできた。

(3.7.4は同じBUILD FAILED (OS X 11.4 using python-build 20180424)がでた)

seleniumの再インストール

やっと前進したと思ったのもつかのまpythonを実行してみると再びこのエラーにあたる。

ModuleNotFoundError: No module named 'selenium'

あらためて以下コマンドを実施

pip install selenium

また実行。今度はwebdriver-managerがないとのこと。

pip install webdriver-manager

やっと動いた。長かった。

おわり

環境を整えるだけで3時間かかってしまった。記事と言える内容でもないが、今後の備忘録のため残してみます。誰か同じ人が時間短縮できることを祈ります。

Python

Posted by Nakamoto