certbotエラー:No module named 'urllib3.packages.six'

 certbotが下記エラーになったときの覚書。

  File "/usr/lib/python3.6/site-packages/urllib3/exceptions.py", line 2, in <module>
    from .packages.six.moves.http_client import (
ModuleNotFoundError: No module named 'urllib3.packages.six'

環境: CentOS Stream release 8, certbot 1.14.0, urllib3 1.24.2

urllib3でエラーになっている。

Google先生に聞くとurllib3とrequestsを強制的にアップグレードするコマンドを教えてくれる。

現在のpipモジュール一覧
# pip list

アップデート可能な一覧
# pip list -o

まずはpip自体を最新にする。
# pip install -U pip

urllib3をアップデート
# pip install -U urllib3

下記エラー

ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.

requests 2.20.0 requires urllib3<1.25,>=1.21.1, but you have urllib3 1.26.4 which is incompatible.

requests 2.20.0との相性がよくないらしい。
requestsを最新にする。
# pip install -U requests

setuptoolsのバージョンが低かったのが気になったので最新にする(今回のエラーとは関係ない)。
# pip install -U setuptools

certbot実行
# certbot certonly --webroot -w /home/httpd/hoge/wordpress/ -d hoge.com

無事完了。


【関連記事】