pip を使ってパッケージをインストールすると、以下の問題が発生することがあります:

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(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1018)'))) - skipping

このエラーメッセージは、https://pypi.org/simple/pip/ にアクセスしようとしたときに、SSL証明書の検証に失敗した問題が発生したことを示しています。

具体的には、エラーメッセージに記載されている SSLCertVerificationError は、クライアントがサーバーの SSL 証明書を検証できないことを示しています。

解決方法もとても簡単で、国内ミラーを使用できます。例えば、清華大学の pip ミラーです。

方法1:コマンドラインで一時的に指定

Python パッケージをインストールするときに、--index-urlパラメータで清華大学のミラーソースを指定し、さらに--trusted-hostパラメータでHTTPSを使用しないことを許可します。

コマンドは次のとおりです:

pip install <package_name> --index-url http://pypi.tuna.tsinghua.edu.cn/simple --trusted-host pypi.tuna.tsinghua.edu.cn
  • --index-url:ミラーソースのURLを指定します。
  • --trusted-host:信頼するホストを指定し、HTTPSを使用しないことを許可します。

例:

pip install baidusearch --index-url http://pypi.tuna.tsinghua.edu.cn/simple --trusted-host pypi.tuna.tsinghua.edu.cn

方法2:グローバル設定

清華大学のミラーソースを永続的に設定し、HTTPS を使用しないようにしたい場合は、pip の設定ファイルを変更することで実現できます。

設定ファイルのパス:

  • Windows:%APPDATA%\pip\pip.ini
  • macOS/Linux:~/.config/pip/pip.conf

設定ファイルに以下の内容を追加します:

[global]
index-url = http://pypi.tuna.tsinghua.edu.cn/simple
trusted-host = pypi.tuna.tsinghua.edu.cn

これで、pip を使用するたびに清華大学のミラーソースが自動的に使用され、HTTPS が強制されなくなります。