Python

[python] pip 설치 시 SSLError 문제 해결하기

언킴 2025. 8. 12. 13:41
반응형
 

SSL(Secure Sockets Layer)은 인터넷상에서 데이터 통신 보안을 제공하는 암호 프로토콜을 의미한다. 파이썬에서 해당 오류가 발생하는 것은 회사 내 방화벽 문제나 SSL certification이 제대로 되지 않았음을 의미한다. 

 

위 문제를 해결하는 방법은 두 가지가 존재한다. 첫 번째로는 pip 시 해당 url 정보는 신뢰할 수 있는 사이트라는 것을 명시하고 설치를 할 수 있다.

!pip install {packages} --trusted-host pypi.org --trusted-host files.pythonhosted.org

 

설치하는 packages는 신뢰할 수 있는 파일이라고 명시하고 방화벽 이슈가 발생하지 않도록 처리하는 것이다. 두 번째 방법은 ssl 자체에 검증을 수행하는 과정을 False로 전환하는 것이다. 

 

import ssl 
ssl._create_default_https_context = ssl._create_unverified_context

 

pip를 만약 github나 request를 통해 가지고 오게 된다면, request 자체의 verify를 하지 않도록 처리해주어야 한다.

import requests
response = requests.get(url, verify=False)

 

대부분 첫 번째 단계에서 해결이 되며, ssl이나 requests 까지는 접근하는 경우가 없다. 첫 번째에 해결되지 않으면, httpx나 ssl, request를 통해 API를 호출할 시 verify=False로 지정해야 하는 방식을 사용하여야 한다. 

 

그 외 방법으로는 환경변수를 설정하여 pip가 설치되도록 하는 방법이 있으나, 실제 회사에서 접근하거나 하는 경우에는 환경변수에 접근하는 것이 불가하기 때문에 권장하지는 않는다. (https://pip.pypa.io/en/stable/topics/configuration/) 참고

 

%APPDATA%\pip\pip.ini

The legacy “per-user” configuration file is also loaded, if it exists: %HOME%\pip\pip.ini

 

위 경로에 pip\pip.ini 을 생성하고, 하기 코드를 작성하게 되면, [global]로 지정하여 pip 설치 시 trusted-hosted 를 별도 기입하지 않아도 된다. 

[global]
trusted-host = pypi.org
               files.pythonhosted.org