JP / EN

広告

"ImportError: urllib3 v2.0 only supports OpenSSL 1.1.1+": とりあえずurllib3のバージョンを落とせば動く

タグ:python あるときからurllib3を使うプロジェクトでImportError: urllib3 v2.0 only supports OpenSSL 1.1.1+ なるエラーが実行時に出るようになった。
urlib3を内部的に使うパッケージのインポートで
    >>> import openai
    [中略]
    File "/Users/mic/Library/Python/3.9/lib/python/site-packages/requests/__init__.py", line 43, in 
      import urllib3
    File "/Users/mic/Library/Python/3.9/lib/python/site-packages/urllib3/__init__.py", line 38, in 
      raise ImportError(
  ImportError: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the 'ssl' module is compiled with LibreSSL 2.8.3. See: https://github.com/urllib3/urllib3/issues/2168
  
のようになる。これはurllib3がv2.0.0からOpenSSL v1.1.1以上のみ利用可能になったためだ。
調べると確かに
    $ apt list | grep openssl
    [中略]
    openssl1.0/bionic-updates,bionic-security 1.0.2n-1ubuntu5.9 amd64
  

のように1.0.2とかなり古い物が入っていることが分かった。

本当ならOepnSSLのようなセキュリティ関係のパッケージが古いままなのは考えものなのでアップグレードをした方が良い。 しかし急ぎならurllib3をダウングレードしてしまえばひとまず動くようになる。
    pip install urllib3==1.26.6 
  
の様に最新のv1系バージョンを指定してインストールしなおせばよい。

例えばMacなら
    brew install openssl@1.1
  
のようにすればよい。
Ubuntuでは
    apt install --only-upgrade openssl.
  
のようにする。(一部古いOSではaptで入らないためソースから入れないといけないかも)

おすすめ記事

"\ufeff"から始まるBOM付uftをPythonで読み込む

Python 内包表記の使い方をマスターする

xargsの使い方:ファイルなどへの反復操作を簡単に



このエントリーをはてなブックマークに追加

https://wonderhorn.net/