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 が強制されなくなります。