pip install할 때 ssl 에러가 발생하면 아래와 같이 --trusted-host
옵션을 추가해서 해결 가능한데,
pip --trusted-host pypi.org --trusted-host files.pythonhosted.org install [패키지명]
poetry에서는 옵션을 추가해서 ssl 에러를 넘어갈 방법이 없다.
poetry는 아래와 같은 방법으로 가능하다.
우선 pip --version
을 실행해서 패키지 설치 경로를 확인 후
[패키지 설치 경로]/pip/_vendor/requests/sessions.py 파일의 아래 코드에서
#: SSL Verification default.
#: Defaults to `True`, requiring requests to verify the TLS certificate at the
#: remote end.
#: If verify is set to `False`, requests will accept any TLS certificate
#: presented by the server, and will ignore hostname mismatches and/or
#: expired certificates, which will make your application vulnerable to
#: man-in-the-middle (MitM) attacks.
#: Only set this to `False` for testing.
self.verify = True
#: SSL client certificate default, if String, path to ssl client
#: cert file (.pem). If Tuple, ('cert', 'key') pair.
self.cert = None
self.verify = True
를 False
로 변경한다.
위 방법으로 해결 안되는 경우 site-packages/requests/adapters.py line 394에 send() 함수가 있는데 아래와 같이 한줄을 추가해준다.
def send(self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None):
"""Sends PreparedRequest object. Returns Response object.
:rtype: requests.Response
"""
verify = False # ==> 추가
try:
conn = self.get_connection(request.url, proxies)
except LocationValueError as e:
raise InvalidURL(e, request=request)