今回はPython pipコマンドでモジュールインストール時にSSLエラーが出たときの対処方法についてご紹介します。
エラー時の環境
私の場合、今回のエラーが発生したときの環境は以下の通りです。
- Windows10
- Python 3.6.8
- pip 20.3.3
AWS CLIを導入して開発環境を整えている状況でした。Python3をインストールして、AWS CLIをインストールしようとコマンドプロンプト上で以下コマンドを打ったらエラーになりました。
pip install awscli --upgrade --user
エラー内容
上のコマンドを打って返ってきたエラーはこんな感じです。
pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.
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/pip/
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/pip/
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/pip/
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/pip/
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/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("Can't connect to HTTPS URL because the SSL module is not available.")) - skipping
Requirement already up-to-date: pip in c:\anaconda3\lib\site-packages (20.1.1)
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
エラー内容は「pipでTLS/SSLが要求されているけど、PythonのSSLモジュールが使えないから動かないよ」ってことです。
つまり、SSLモジュールを直せばきちんと動くってことになります。
対処方法
対処方法についてはいくつかご紹介します。
①OpenSSLをインストールする
OpenSSLが入っていない場合はこのエラーが出ます。
以下からOpenSSLをダウンロード&インストールすることで解決します。
私の場合はこれで解決しました。
OpenSSLはこちらのサイトからダウンロードしました。Windows64bitの場合は、Win64 OpenSSL Lightを選択してダウンロードすればOKです。
brewが使える環境の場合は、以下のようにbrewでopensslを再インストールすることで解決できる場合もあるようです。
brew unlink openssl
brew reinstall oplenssl
②ファイルを差し替える
Windows10の場合、以下ファイルが壊れているためpipがうまく動作しない場合があるようです。
ent Engine Components\iCLS\libssl-1_1-x64.dll
Anacondaをインストールしている場合、以下のAnaconda上にあるファイルをコピーして差し替えるとpipが動作するようです。
C:\Users\[User]\Anaconda3\pkgs\openssl-1.1.1b-he774522_1\Library\bin
③Xcodeのバージョンアップ
Xcodeのバージョンアップが古いと、本エラーが出る場合があるようです。
まとめ
今回はPython pipコマンドでモジュールインストール時にSSLエラーが出たときの対処方法についてご紹介しました。
エラーが発生した場合は、素直にOpenSSLをインストールしましょう。
他にもPythonのおすすめ記事をこちらにまとめました。
星の数は記事で紹介しているプログラミングの難易度を示しているよ。自分のレベルに合わせて読んでみてね。
Pythonおすすめ記事
また、Pythonなどのプログラミングを本格的に勉強したのであれば、オンラインでも受講可能な「TECH ACADEMY」がオススメです。
専属のアドバイザーがついてくれるので、短期集中で必要なプログラミング技術を身に着けることができます。
「TECH ACADEMY」よるスキルアップで、もう一段上のエンジニアへステップアップしましょう!
また、AI開発や人工知能アプリに特化してもっと勉強したい人、AIエンジニアの資格取得や転職にチャレンジしてみたいという方には、Aidemyがおすすめです。こちらの記事で詳しく解説しています。
また、AIで転職したい人はこちらの記事もおすすめです。
コメント