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'Python' 카테고리의 다른 글
| [Python] 폴더 내 모든 경로의 파일 조회하기 (0) | 2025.08.19 |
|---|---|
| [Python] dotenv로 api key 환경변수 설정하기 / 숨기기 (1) | 2025.08.13 |
| Shell file로 딥러닝 학습하기 (0) | 2024.02.26 |
| [Python] 패키지 버전 확인하기 with code (0) | 2023.12.27 |
| [Wandb] Wandb 사용법 + Sweep with Pytorch (1) | 2023.12.21 |