빅데이터

보안망 SSL에러 피하기

도그사운드 2025. 2. 17. 17:56

내부망에서는 패키지 설치 시 SSL오류가 발생한다.

관련하여 관리기관에서는 해결방법이 없다고 하고, 전용망을 설치해야 한다고 한다.

글쎄...

이 문제로 벌써 5년 가까이 답이 없는걸로 알고 있었다.

현재 있는 곳에서도 그렇고 그전에 있었던 은행에서도 그랬다.

그런데 해결이 됐다.


첫째 방법은 많이 사용되는 방법이다.

 

pip install <패키지명> --trusted-host pypi.org --trusted-host files.pythonhosted.org

pytorch를 다운받을때는

pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu117 --trusted-host pypi.org --trusted-host files.pythonhosted.org --trusted-host download.pytorch.org

 

-poetry를 사용하는 경우는  pip.ini 또는 .pip/pip.conf에 에 포함시켜 둔다.

[global]

trusted-host = pypi.org files.pythonhosted.org

-huggingface 추가시에는

[global]

trusted-host = pypi.org files.pythonhosted.org huggingface.co cdn.huggingface.co


두번째

그런데 huggingface를 사용할때는 모델을 명시하는 순간 다운로드가 시작되는데 이때는 위의 방법으로 해결되지 않는다.

오늘 사용한 방법은 좀 다르다.

import os
import ssl
import requests
os.environ["HF_HUB_DISABLE_SSL_VERIFY"] = "1"
os.environ["PYTHONHTTPSVERIFY"] = "0" 
ssl._create_default_https_context = ssl._create_unverified_context

old_request = requests.Session.request # 기존 request 메서드를 저장합니다.
def new_request(self, *args, **kwargs):
    kwargs['verify'] = False  # SSL 검증을 항상 비활성화
    return old_request(self, *args, **kwargs)

requests.Session.request = new_request # requests의 모든 세션에 대해 request 메서드를 교체합니다.

from sentence_transformers import SentenceTransformer
model_name = "sentence-transformers/all-MiniLM-L6-v2"
model = SentenceTransformer(model_name)

위의 방법으로는 모델이 다운로드 된다.

SSL검증을 비활성화하는 방법이다.

 

Sentence BERT를 다운로드하는 과정

 

위의 방법을 사용할때 첫번째는 모델이 다운로드 되었으나 두번째에는 다운이 안되는 경우가 있다. 이때는 폴더의 캐쉬를 제거해준다.

C:\Users\<사용자명>\.cache\huggingface\hub

 

이 문제로 참 애먹었는데 이제야 해결이 된다.

'빅데이터' 카테고리의 다른 글

통합대피소 위치시각화  (0) 2025.02.14
star-history.com  (1) 2024.10.18
기상위성 데이터를 살펴보자  (0) 2024.07.26
텍스트 요약 비교  (0) 2024.03.06
Airflow  (0) 2024.02.21