본문 바로가기
IT/개발

Python Pip install 문제 해결 - HTTPS!?

by ITeaStory 2020. 11. 3.

pip install이 안돼!

파이썬(Python)을 사용하신다면 pip를 안 써보신 분이 없으실 겁니다.

SSLError("Can't connect to HTTPS URL because the SSL module is not available.")'

pip로 패키지를 인스톨하려고 할 때 이런 에러 메시지를 보신 적이 있나요?
이번에 이 에러를 보고 해결했던 방법을 알려드리고자 합니다.

PC에 Windows를 새로 설치하고 아나콘다(Anaconda)와 PyCharm을 사용해 개발환경을 만들며 마주하게 된 문제였습니다.
아나콘다(Anaconda)는 Data Science에 특화된 파이썬(Python) 패키지들을 미리 모아둔 것이며
PyCharm은 파이썬(Python)개발에 특화된 IDE입니다.

PyCharm으로 생성한 가상 환경(venv)에서 pip를 이용해서 패키지를 설치하려고 했는데 SSLError라는 일련의 메시지를 띄우며 패키지 인스톨 안됐습니다.
출력된 에러 메시지는 아래와 같습니다.

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/numpy/
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/numpy/
SSLError("Can't connect to HTTPS URL because the SSL module is not available.")': /simple/numpy/
WARNING: Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError("Can't connect to HTTPS U
WARNING: Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError("Can't connect to HTTPS
SSLError("Can't connect to HTTPS URL because the SSL module is not available.")': /simple/numpy/
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/numpy/
Could not fetch URL https://pypi.org/simple/numpy/: There was a problem confirming the ssl certificate: HTTPSConnectionPool(host='pypi.org', port=443): Max retries exceeded with url: /simple/numpy/ (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 numpy (from versions: none)
ERROR: No matching distribution found for numpy
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 HTT
PS URL because the SSL module is not available.")) - skipping

TLS/SSL를 사용해야 되는데 SSL 모듈이 없다고 합니다.

패키지 인스톨을 할 때 --trusted-host를 사용하거나 https로 연결하는 것을 http로 연결하도록 수정하라거나 OpenSSL을 설치하라와 같이 다양한 방법들이 있었습니다.
저는 임시방편 같은 --trusted-host로 등록하거나 http로 연결하는 방법을 사용하고 싶지 않아서 OpenSSL을 설치하는 쪽으로 작업을 해봤습니다만 실패했습니다.
OpenSSL 문제가 아니었습니다. 아나콘다(Anaconda) 내부에 이미 OpenSSL도 설치되어 있었습니다.

혹시 몰라 OpenSSL 설치 방법을 정리해둔 링크를 남깁니다.
OpenSSL 윈도우에서 설치하는 방법

 

OpenSSL 윈도우에서 설치하는 방법

1. OpenSSL이란? OpenSSL은 SSL과 같은 네트워크 프로토콜을 오픈소스로 구현해놓은 보안 라이브러리입니다. HTTPS가 SSL/TLS을 사용하는 대표적인 사례입니다. HTTPS는 SSL/TLS인증서를 이용해서 데이터를

iteastory.com

 

OpenSSL을 설치했는데도 문제가 지속되니 그럼 뭐가 문제일까 살펴보다 보니 Path 설정을 안 해줬더군요
아나콘다(Anaconda) 설치 도중에 시스템 Path 등록하는 부분을 체크하지 않고 설치했었습니다.
Path 설정을 체크하고 재설치를 하니 제대로 동작했습니다.

재설치가 싫으신 분들은 Path에 아래 경로들을 등록해주세요.
저는 C:\anaconda3에 아나콘다(Anaconda)를 설치했습니다.
자기 환경에 맞게 수정해서 등록하시면 됩니다.

C:\anaconda3
C:\anaconda3\Library\mingw-w64\bin
C:\anaconda3\Library\usr\bin
C:\anaconda3\Library\bin
C:\anaconda3\Scripts

이렇게 하고 나니 정상적으로 잘 동작했습니다.

OpenSSL이 아나콘다(Anaconda) 내에 있다는 것도 Path에 등록된 경로를 살펴보다 알게 되었습니다.
처음 시도했던 OpenSSL도 설치하고 Path 설정만 해줬으면 동작하지 않았을까 하는 생각이 드네요.