python에서 pip install 과정에서 SSL 오류 해결방법
python의 라이브러리를 사용함에 있어 pip를 통해 관련 라이브러리 패키지를 다운로드 받아 설치할 수 있습니다. 비록 pip가 root 권한 관련 문제가 있지만 그나마 사용할만한 것입니다. 물론 이러한 문제는 아나콘다의 설치환경 설정으로 어느정도 해결된 감이 있습니다.
pip를 통해 직접 다운로드를 하는 과정에서 내부망의 정책에 의해 제한 등이 있을 경우 아래와 같이 SSL 문제가 발생되는 것을 볼 수 있었습니다. 아래의 예는 Python에서 사용되는 라이브러리인 SciPy를 설치하는 과정에서 발견하게된 오류입니다.
Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:852)'),)': /simple/scipy/
Could not find a version that satisfies the requirement scipy (from versions: )
No matching distribution found for scipy
해당 문제롤 해결하기 위해 pip에서 제공하는 --trusted-host 옵션을 사용합니다. 명령어는 아래와 같습니다.
#Python2
$ python2 -m pip --trusted-host pypi.python.org --trusted-host files.pythonhosted.org --trusted-host pypi.org install 패키지명
# Python3
$ python3 -m pip --trusted-host pypi.python.org --trusted-host files.pythonhosted.org --trusted-host pypi.org install 패키지명
만약 위의 명령어가 너무 길어 차후 설치할 때 일일이 입력하지 않고 간단하게 실행을 원하시는 분은 다음과 같이 .bashrc에 기록해줍니다.
$ vi ~/.bashrc
#Python2
alias pip2='python2 -m pip --trusted-host pypi.python.org --trusted-host files.pythonhosted.org --trusted-host pypi.org'
#Python3
alias pip3='python3 -m pip --trusted-host pypi.python.org --trusted-host files.pythonhosted.org --trusted-host pypi.org'
위와같이 설정하신 후 차후에는 다음과 같이 명령어를 입력하시면 간편하게 Python 라이브러리를 pip를 통해 설치하실 수 있습니다.
#Python2
$ pip2 install 패키지명
#Python3
$ pip3 install 패키지명
※ 2022년 5월 12일 추가
Windows 환경에서 pip의 SSL error 이슈를 해결하기 위해 위에서 설명한바와 같이 --trusted-host로 웹사이트를 추가하여 pip에 적용합니다. 이를 Powershell로 간단하게 적용하는 방법을 아래의 글에서 소개해드리겠습니다.