Linux

WARNING: pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available. というエラーが発生しました

投稿日:

1. 起きた現象

Ubuntu 22.04.1 LTS (WSL) にて、pip コマンドでパッケージをインストールしようとしたところ、以下のエラーが発生しました。

$ pip3 install arjun 
WARNING: pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available. 
WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError("Can't connect to HTTPS URL because the SSL module is not available.")': /simple/arjun/ 
WARNING: Retrying (Retry(total=3, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError("Can't connect to HTTPS URL because the SSL module is not available.")': /simple/arjun/ 
WARNING: Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError("Can't connect to HTTPS URL because the SSL module is not available.")': /simple/arjun/ 
WARNING: Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError("Can't connect to HTTPS URL because the SSL module is not available.")': /simple/arjun/ 
WARNING: Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError("Can't connect to HTTPS URL because the SSL module is not available.")': /simple/arjun/ 
Could not fetch URL https://pypi.org/simple/arjun/: There was a problem confirming the ssl certificate: HTTPSConnectionPool(host='pypi.org', port=443): Max retries exceeded with url: /simple/arjun/ (Caused by SSLError("Can't connect to HTTPS URL because the SSL module is not available.")) - skipping 
ERROR: Could not find a version that satisfies the requirement arjun (from versions: none) 
ERROR: No matching distribution found for arjun 
WARNING: pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available. 
Could not fetch URL https://pypi.org/simple/pip/: There was a problem confirming the ssl certificate: HTTPSConnectionPool(host='pypi.org', port=443): Max retries exceeded with url: /simple/pip/ (Caused by SSLError("Can't connect to HTTPS URL because the SSL module is not available.")) - skipping

Python の ssl モジュールが使えないと言われています。

2. 考察

まず、この環境では pyenv を使ってPythonをインストールしており、pip コマンドも同様です。

そして気になるのは、少し前に Ubuntu のバージョンを 20.04 から 22.04 に上げたことでした。このとき、pyenv によってインストールされている Python に関しては特に何もしていません。OSのバージョンによって、OS が標準的に装備しているSSLライブラリの種類やバージョンも違っているでしょうから、それを利用しているであろう Python の ssl モジュールに何かしらの影響があっても不思議ではありません(あくまでも仮説ですが)。

3. 対応

ということで、pyenv の Python を再インストールします。

この環境では、Python 3.8.5 と 2.7.18 の2つのバージョンがインストールされていたので、両方とも再インストールしました。

$ pyenv install 3.8.5 
pyenv: /mnt/c/Users/foo/.pyenv/versions/3.8.5 already exists 
continue with installation? (y/N) y 
Downloading Python-3.8.5.tar.xz... 
-> https://www.python.org/ftp/python/3.8.5/Python-3.8.5.tar.xz 
Installing Python-3.8.5... 
Installed Python-3.8.5 to /mnt/c/Users/foo/.pyenv/versions/3.8.5 
$ pyenv install 2.7.18 
pyenv: /mnt/c/Users/foo/.pyenv/versions/2.7.18 already exists 
continue with installation? (y/N) y 
Downloading Python-2.7.18.tar.xz... 
-> https://www.python.org/ftp/python/2.7.18/Python-2.7.18.tar.xz 
Installing Python-2.7.18... 
Installed Python-2.7.18 to /mnt/c/Users/foo/.pyenv/versions/2.7.18

4. 結果

今回はこの対応で問題が解決しました。

5. 参考

📂-Linux

執筆者:labo


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

関連記事

CentOS

CentOS Stream release 8 で「Configuration: OptionBinding with id “failovermethod” does not exist」というエラーが表示される

CentOS Stream release 8 で「Configuration: OptionBinding with id “failovermethod” does not exist」というエラーが表示される場合の対応についてです。

CentOS

CentOS 8 で Snap から certbot パッケージをインストールする

CentOS 8 で Snap から certbot パッケージをインストールする方法について説明します。

Linux

「よく使うコマンドランキングの表示」を1つのコマンドにする

目次1. はじめに2. 入力が面倒なコマンドを新たなコマンド(今回は関数)にする3. 作成した関数の実行4. コマンドの引数も合わせて調べたい5. 履歴のフォーマットが異なる場合6. まとめ 1. は …

Linux

環境変数PATHにセットされたパスを1行毎に表示する

環境変数PATHにセットされたパスを1行毎に表示する方法について説明しています。

CentOS

CentOS 8 を CentOS Stream に移行するコマンド

目次1. 突然の CentOS 8 終了宣言2. CentOS Stream に移行するコマンド3. 2021年5月:移行作業を行いました4. 参考 1. 突然の CentOS 8 終了宣言 Cent …