본문 바로가기

Coding

python error] NotOpenSSLWarning: urllib3 v2 only supports OpenSSL 1.1.1 오류 처리

 

NotOpenSSLWarning: urllib3 v2 only supports OpenSSL 1.1.1 경고가 계속 발생하는 문제는, 현재 사용 중인 Python이 OpenSSL 대신 LibreSSL을 사용하여 컴파일되었기 때문입니다. macOS에서는 기본적으로 LibreSSL을 사용하므로, 이 문제를 해결하려면 Python을 OpenSSL 1.1.1 이상과 함께 다시 설치하거나, 적절한 설정을 해야 합니다.

 

1. Homebrew를 사용하여 OpenSSL 설치

먼저, Homebrew를 사용하여 OpenSSL 1.1.1 이상을 설치합니다:

brew install openssl@1.1

설치된 OpenSSL의 경로는 나중에 Python 설치 시 사용됩니다.

 

2. pyenv 설치 및 설정

pyenv를 사용하여 Python을 설치할 때, OpenSSL을 사용하도록 설정합니다.

pyenv 설치: Homebrew를 사용하여 pyenv를 설치합니다:

brew install pyenv

 

환경 설정: 터미널에서 pyenv가 정상적으로 작동하도록 환경 변수를 설정합니다

echo 'export PATH="$HOME/.pyenv/bin:$PATH"' >> ~/.zshrc
echo 'eval "$(pyenv init --path)"' >> ~/.zshrc
echo 'eval "$(pyenv init -)"' >> ~/.zshrc
source ~/.zshrc

OpenSSL 경로 설정: OpenSSL 1.1.1을 사용하여 Python을 설치하도록 환경 변수를 설정합니다.

export LDFLAGS="-L$(brew --prefix openssl@1.1)/lib"
export CPPFLAGS="-I$(brew --prefix openssl@1.1)/include"
export PKG_CONFIG_PATH="$(brew --prefix openssl@1.1)/lib/pkgconfig"

Python 설치: 이제 pyenv를 사용하여 Python을 설치합니다. 아래는 Python 3.9.9를 설치하는 예시입니다.

pyenv install 3.9.9  # 원하는 Python 버전으로 변경
pyenv global 3.9.9   # 설치한 버전을 기본으로 설정

 

3. 가상 환경 재설정

기존 가상 환경을 새로운 Python으로 재설정해야 합니다.

가상 환경 삭제

rm -rf .venv

 

가상 환경 재설정

python -m venv .venv
source .venv/bin/activate

 

필요한 패키지 재설치

pip install --upgrade pip
pip install -r requirements.txt

 

4. 설치 확인

위 과정을 완료한 후, 다음 명령어로 Python이 OpenSSL 1.1.1 이상과 함께 설치되었는지 확인할 수 있습니다.

python -m ssl | grep OpenSSL

이 명령어가 OpenSSL 1.1.1 이상의 버전을 반환하면, 설치가 성공적으로 완료된 것입니다.

이 단계들을 따르면, Python이 OpenSSL 1.1.1 이상을 사용하도록 설정되며, 더 이상 NotOpenSSLWarning 경고가 발생하지 않을 것입니다. 이러한 경고는 Python과 SSL 라이브러리 간의 버전 차이로 인한 것이므로, Python을 올바른 SSL 라이브러리와 함께 설치하여 해결할 수 있습니다.