programing

pip3로 패키지를 설치할 때 "Python에서 ssl 모듈을 사용할 수 없습니다.

goodsources 2023. 6. 30. 22:18
반응형

pip3로 패키지를 설치할 때 "Python에서 ssl 모듈을 사용할 수 없습니다.

3 3로컬퓨 Python 3.4및 Python 3.6을로 할 수 .pip3.

가 실할때를 실행할 때.pip3 install <package>다음 SSL 관련 오류가 발생합니다.

pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.
Collecting <package>
  Could not fetch URL https://pypi.python.org/simple/<package>/: There was a problem confirming the ssl certificate: Can't connect to HTTPS URL because the SSL module is not available. - skipping
  Could not find a version that satisfies the requirement <package> (from versions: )
No matching distribution found for <package>

3.x를 설치할 수 있도록 하려면 ?pip install <package>?

Ubuntu에 Python 3.6 및 pip3를 설치하기 위한 단계별 가이드

  1. ssl에 : Python 및 ssl :$ sudo apt-get install libreadline-gplv2-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev

  2. https://www.python.org/ftp/python/ 에서 "Python-3.6.8.tar.xz"를 다운로드하여 홈 디렉토리에 압축을 풉니다.

  3. 다음을 실행합니다.$ ./configure

  4. 및 빌드및설:$ make && sudo make install

  5. 같이 패키지를 합니다.$ pip3 install package_name

고지 사항:위의 명령은 Ubuntu 20.04 LTS에서 테스트되지 않았습니다.

Windows(윈도우)에서 아나콘다를 사용하는 경우에는 다음과 같은 이점이 있습니다.

작동하지 않는 다른 솔루션도 많이 시도했습니다(Environment PATH Variable 변경...).

이 문제는 Windows의 DLL로 인해 발생할 수 있습니다.시스템32 폴더(예: libcrypto-1_1-x64.dll 또는 libssl-1_1-x64.dll 또는 기타)가 다른 소프트웨어에 의해 배치됩니다.

이 문제는 https://slproweb.com/products/Win32OpenSSL.html 에서 dll을 최신 버전으로 대체하는 openSSL을 설치하는 것이었습니다.

레드햇/센트에 있는 경우OS:

# To allow for building python ssl libs
yum install openssl-devel
# Download the source of *any* python version
cd /usr/src
wget https://www.python.org/ftp/python/3.6.2/Python-3.6.2.tar.xz
tar xf Python-3.6.2.tar.xz 
cd Python-3.6.2

# Configure the build w/ your installed libraries
./configure

# Install into /usr/local/bin/python3.6, don't overwrite global python bin
make altinstall

OSX 10.11에서도 3.6 위에 python 3.7을 설치한 memcach를 설치하는 바람에 비슷한 문제가 있었습니다.

경고: Pip이 TLS/SSL이 필요한 위치로 구성되어 있지만 Python의 SSL 모듈을 사용할 수 없습니다.

openssl 연결 해제, 재설치, 경로 변경에 소요된 시간.아무것도 도움이 되지 않았습니다.openssl 버전을 다시 이전 버전으로 변경하면 다음과 같은 이점이 있습니다.

brew switch openssl 1.0.2e

나는 인터넷 어디에서도 이 제안을 보지 못했습니다.누군가에게 도움이 되길 바랍니다.

Ubuntu에서는 다음과 같은 이점이 있습니다.

cd Python-3.6.2
./configure --with-ssl
make
sudo make install

마스타 블라스타의 대답에 동의합니다.나를 위해 일했습니다.주제 설명과 동일한 문제가 발생했습니다.

환경: MacOS Sierra.그리고 저는 홈브루를 사용합니다.

내 솔루션:

  1. 다시 설치하면 슬레이브가 열립니다.brew uninstall openssl; brew install openssl
  2. 홈브루가 제시한 힌트에 따라 다음을 수행합니다.

    echo 'export PATH="/usr/local/opt/openssl/bin:$PATH"' >> ~/.bash_profile
    export LDFLAGS="-L/usr/local/opt/openssl/lib"
    export CPPFLAGS="-I/usr/local/opt/openssl/include"
    

Debian9에서 python3.8.5를 설치할 때도 같은 문제가 있었습니다.빌드를 수행했지만 일부 모듈을 다운로드하려고 시도했을 때 pip3.8이 다음 오류를 발생시켰습니다.

pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.

저는 제 문제의 근원을 검색했고 파이썬 빌드에 시스템 독립적으로 호출되는 시스템 종속 부분이 있다는 것을 발견했습니다.ssl이 누락된 경우 python 터미널을 열고 _ssl이 존재하는지 확인하기만 하면 됩니다.

>>> help('modules')
.
.
_sre                enum                pwd                 wave
_ssl                errno               py_compile          weakref
_stat               faulthandler        pyclbr              webbrowser
.
.

그렇지 않으면 시스템 종속 SSL 모듈 부품이 누락됩니다.<python_installation_root>/lib/python3의 내용을 나열하여 확인할 수도 있습니다.8/lib-sload:

>ls ./lib/python3.8/lib-dynload | grep ssl
_ssl.cpython-38-x86_64-linux-gnu.so

이 문제는 빌드 도중 libssl-dev가 누락되어 PengShaw가 작성한 대로 발생했습니다.따라서 권장되는 python 설치 흐름을 따라야 합니다.먼저 필수 구성 요소를 설치한 다음 python을 빌드하고 설치합니다.개발 버전의 libs 없이 설치한 결과 시스템 종속 부분이 누락된 경우가 발생했습니다.이 경우 _ssl.

Developlib 이름은 Debian과 CentOS에 따라 다르므로 net에 게시된 설치 힌트가 특정 Linux 시스템 유형에 적합한지 확인하십시오.

For Debian:
sudo apt install -y libbz2-dev libffi-dev libssl-dev
./configure --enable-optimizations
make
make altinstall


For CentOS:
sudo yum -y install bzip2-devel libffi-devel openssl-devel
./configure --enable-optimizations
make
make altinstall

구성 및 evtl 전에 구성 옵션을 나열하는 것이 좋습니다.몇 가지 추가 옵션을 사용합니다.

./configure --help

마지막으로 기본이 아닌 설치 위치에 --prefix를 사용하는 경우에는 LDAP_LIBRARY_PATH에 <python_installation_root>/lib를 추가해야 합니다.

Windows에서 Anaconda를 사용하는 경우 사용자가 1995년에 여기서 제안하는 것처럼 cmd.exe 대신 Anaconda Prompt에서 "pip install..." 명령을 실행할 수 있습니다.이것은 추가 구성요소를 설치할 필요가 없는 저에게 가장 빠른 솔루션이었습니다.

라이브러리 누락으로 인해 문제가 발생했을 수 있습니다.

python 3.6을 설치하기 전에 python에 필요한 모든 라이브러리를 설치해야 합니다.

$ sudo apt-get install build-essential checkinstall 
$ sudo apt-get install libreadline-gplv2-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev

Ubuntu & LinuxMint에서 Python 3.6.0을 설치하는 방법에 대한 자세한 정보

OSX에 있고 소스에서 python을 컴파일한 경우:

brew를 설치하기 openssl openssl opensslbrew install openssl

설정에 대해 브루가 제공하는 지침을 반드시 따르십시오.CPPFLAGS그리고.LDFLAGS 경우에는 저의경는에를 .openssl@1.1brew formula 및 python 빌드 프로세스에서 SSL 라이브러리에 올바르게 연결하려면 다음 세 가지 설정이 필요합니다.

export LDFLAGS="-L/usr/local/opt/openssl@1.1/lib"
export CPPFLAGS="-I/usr/local/opt/openssl@1.1/include"
export PKG_CONFIG_PATH="/usr/local/opt/openssl@1.1/lib/pkgconfig"

라이브러리가 해당 위치에 설치되어 있다고 가정합니다.

openssl 다운그레이드는 나에게 효과가 있었습니다.

brew switch openssl 1.0.2s

osx brew 사용자용

내 문제는 내 파이썬 설치와 관련이 있어 보였고 python3와 pip를 다시 설치함으로써 빠르게 해결되었습니다. 나는 OS 업데이트 후에 그것이 잘못되기 시작했다고 생각하지만 누가 알겠습니까(지금 나는 Mac OS 10.14.6에 있습니다).

brew reinstall python3 --force
# setup pip
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
python3 get-pip.py
# installa pkg successfully 
pip install pandas

윈도우 10에서도 같은 문제가 발생했습니다.저의 가장 구체적인 문제는 아나콘다 설치 때문입니다.아나콘다를 설치하고 길 아래에Path/to/Anaconda3/저기에 있습니다python.exe그래서 아나콘다에 파이썬이 포함되어 있어서 파이썬을 아예 설치하지 않았습니다.패키지를 할 때 보고서 pip을 .pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available..

해결책은 다음과 같습니다.

공식 웹사이트에서 파이썬을 다시 다운로드할 수 있습니다;

다디토로이니다합동리렉음이 있는 합니다."Python 3.7 (64-bit).lnk"는 치위입니다.

3)import ssl그리고.exit()

cmd, cmd를 합니다."Python 3.7 (64-bit).lnk" -m pip install tensorflow예를 들어.

자, 준비됐습니다.

저는 이 문제를 해결하기 위해 많은 방법을 시도했지만 해결되지 않았습니다.현재 Windows 10(윈도우 10)

효과가 있었던 것은 다음과 같습니다.

  • 아나콘다 제거
  • Python 제거(3.7.3 버전을 사용하고 있었습니다)
  • Python을 다시 설치합니다(PATH에 자동으로 추가하는 옵션을 선택하십시오).

그런 다음 PIP를 사용하여 필요한 립을 모두 다운로드하고 작업했습니다.

왜 그런지, 아니면 그 문제가 아나콘다와 관련이 있는지는 모르겠습니다.

다음 두 가지 중 하나를 수행할 수 있습니다.

  1. 아나콘다를 설치하는 동안 아나콘다를 경로에 추가하는 옵션을 선택합니다.

또는

  1. Anaconda의 설치 폴더에서 다음(전체) 경로를 찾아 환경 변수에 추가합니다.

\아나콘다

\Anaconda\Library\mingw-w64\bin

\아나콘다\라이브러리\usr\bin

\아나콘다\라이브러리\빈

\아나콘다\스크립트

\아나콘다\라이브러리

\아나콘다\콘다빈

위의 경로를 "Path" 시스템 변수에 추가하면 더 이상 오류가 표시되지 않습니다. :)

sslmodule은 Operation System(OS) 소켓(Lib/ssl.py )에 액세스하기 위한 TLS/SSL 래퍼입니다.그래서 언제ssl모듈을 사용할 수 없습니다. OS OpenSSL 라이브러리가 설치되어 있지 않거나 Python을 설치할 때 이러한 라이브러리를 찾을 수 없습니다.나중의 사례(일명: OpenSSL이 이미 설치되어 있지만 Python을 설치할 때 올바르게 연결되지 않음)라고 가정합니다.

또한 소스에서 설치하는 것으로 가정하겠습니다.이진(예: Windows .exe 파일) 또는 패키지(Mac .dmg 또는 Ubuntu apt)에서 설치하는 경우 설치 프로세스에서 수행할 수 있는 작업이 많지 않습니다.

Python 설치를 구성하는 단계에서 OS OpenSSL을 링크에 사용할 위치를 지정해야 합니다.

# python 3.8 beta
./configure --with-openssl="your_OpenSSL root"

그러면 설치된 OpenSSL 디렉토리는 어디에서 찾을 수 있습니까?

# ubuntu 
locate ssl.h | grep '/openssl/ssl.h'

/home/user/.linuxbrew/Cellar/openssl/1.0.2r/include/openssl/ssl.h
/home/user/envs/py37/include/openssl/ssl.h
/home/user/miniconda3/envs/py38b3/include/openssl/ssl.h
/home/user/miniconda3/include/openssl/ssl.h
/home/user/miniconda3/pkgs/openssl-1.0.2s-h7b6447c_0/include/openssl/ssl.h
/home/user/miniconda3/pkgs/openssl-1.1.1b-h7b6447c_1/include/openssl/ssl.h
/home/user/miniconda3/pkgs/openssl-1.1.1c-h7b6447c_1/include/openssl/ssl.h
/usr/include/openssl/ssl.h

당신의 시스템은 나의 시스템과 다를 수 있지만, 당신이 여기서 보는 것처럼 나는 많은 다양한 openssl 라이브러리를 설치했습니다.이 글을 쓰는 시점에서 python 3.8은 openssl 1.0.2 또는 1.1을 예상합니다.

Python을 사용하려면 OpenSSL 1.0.2 또는 1.1과 호환되는 X509_VERIFY_PARAM_set1_host()가 필요합니다.

따라서 예를 들어 링크에 사용할 수 있는 설치된 라이브러리를 확인해야 합니다.

/usr/bin/openssl version

OpenSSL 1.0.2g  1 Mar 2016
./configure --with-openssl="/usr"
make && make install

Python과 OS에 적합한 라이브러리를 찾으려면 몇 가지 시도하거나 새 라이브러리를 설치해야 할 수도 있습니다.

저는 같은 문제를 겪고 있었고 다음 단계로 해결할 수 있었습니다.

sudo yum install -y libffi-devel
sudo yum install openssl-devel
cd /usr/src
sudo wget https://www.python.org/ftp/python/3.7.1/Python-3.7.1.tar.xz
sudo tar xf Python-3.7.1.tar.xz
cd Python-3.7.1
sudo ./configure --enable-optimizations
# Install into /usr/local/bin/python3.7, don't overwrite global python bin
sudo make altinstall

파마에 따라, 당신은 sudo가 필요하지 않을 수도 있습니다.

Results:
Collecting setuptools
Collecting pip
Installing collected packages: setuptools, pip
Successfully installed pip-10.0.1 setuptools-39.0.1

이제 실행할 수 있어야 합니다.

python3.7 -V 

그리고.

pip3.7 -V

패키지 설치 시:

pip3.7 install pandas

또는 파마에 따라 다음과 같이 --user 플래그를 추가할 수도 있습니다.

pip3.7 install pandas --user

에는 Mac을 했습니다./Applications/Python 3.7 나는 파이썬 3 바이 파이썬 3.7을 있었기 입니다.brew install python3.

하지만 그것은 메시지의 계기가 되었습니다.

pip는 TLS/SSL이 필요한 위치로 구성되어 있지만 Python의 ssl 모듈은 사용할 수 없습니다.

내 상황에서 내가 한 일은

  1. macOS 64비트 설치 프로그램을 다시 다운로드하여 설치했습니다.
  2. 번 클릭합니다./Applications/Python3.6/Install Certificates.command그리고./Applications/Python3.6/Update Shell Profile.command.
  3. Mac 재부팅
  4. 그리고 저는 확신할 수 없지만 성공에 기여할 수 있는 것은pip.confpip 설치 실패를 참조하십시오.

드디어 이 문제를 해결했습니다.env에 자세한 은 다음과 같습니다.
: 버전: 3.6.8
16 LTSOS: 우분투 16.04.6 LTS
루트 액세스:아니요.

은 일부사람설제다안니합치를을 합니다.libssl-dev하지만 제게는 효과가 없었습니다.는 이 링크를 따라 수정했습니다!
간단히 말해서, 저는 OpenSSL(openssl-1.1.1b.tar.gz)을 다운로드, 추출, 빌드 및 설치합니다.그러면 수정합니다..bashrc파일은 이 링크를 따릅니다.
다음으로 Python-3.6.8.tgz를 다운로드하여 추출합니다.Modules/Setup.dist를 편집하여 SSL 경로(#211 주위의 줄)를 수정합니다.가 ㅠㅠ./configure --prefix=$HOME/opt/python-3.6.8,make그리고.make install마지막으로, 나는 나의.bashrc▁do▁not를 포함하지 않음을 하십시오.--enable-optimizations./configure.

저는 이 파일의 파이썬 버전을 업데이트하여 이 문제를 해결할 수 있었습니다.pyenv: 버전 '3.6.5'이(가) 설치되지 않았습니다(/Users/taruntarun/에 의해 설정됨).python-version)최신 버전을 설치했지만, 내 명령은 여전히 이전 버전 3.6.5를 사용하고 있었습니다.

버전 3.7.3으로 이동

터룩스

기존 openssl 버전을 설치하지 않았기 때문에 작동했습니다.

pkg install openssl-tool

OSX를 사용하고 있고 다른 솔루션이 (나처럼) 작동하지 않았을 경우.

python3를 제거하고 pip3를 업그레이드해 볼 수 있습니다.

brew uninstall --ignore-dependencies python3
pip3 install --upgrade pip   

이것은 나에게 효과가 있었습니다 ;)

(Windows에서는 사용할 수 없습니다!)

이것은 제가 일주일 동안 머리를 쥐어뜯게 만들었기 때문에, 저는 이것이 누군가에게 도움이 되기를 바랍니다.

아나콘다 및/또는 주피터를 다시 설치하는 것 외에는 모든 것을 시도했습니다.

세우다

  • AWS 리눅스
  • 수동으로 아나콘다 3-5.3.0 설치
  • Python3(3.7) 내부에서 되었습니다../anaconda3/bin/python)
  • 한있니다습었또다▁also▁was니▁there도 있었습니다./usr/bin/python그리고./usr/bin/python3

고치다

주피터의 단말기에서:

cp /usr/lib64/libssl.so.10 ./anaconda3/lib/libssl.so.1.0.0

cp /usr/lib64/libcrypto.so.10 ./anaconda3/lib/libcrypto.so.1.0.0

무엇이 이것을 촉발시켰습니까?

그래서, 제가 시도하기 전까지는 이 모든 것이 효과가 있었습니다.conda install conda-forge

일이 있었는지는, 봐요.openssl상자 위에 (내 추측으로는) 그래서 이것 이후에, 모든 것이 깨졌습니다.

하고 openssl, openssl, openssl로 했습니다.libssl.so.1.1그리고.libcrypto.so.1.1.

Python3, 아도, 검기위를 찾기 것 .libssl.so.1.0.0

결국 진단의 핵심은 다음과 같습니다.

python -c "import ssl; print (ssl.OPENSSL_VERSION)"

단서를 주었습니다library "libssl.so.1.0.0" not found

제가 한 엄청난 가정은yum은 ssl 버다같습다니음과의와 같습니다.conda공유 개체의 이름을 바꾸는 것만으로도 작동할 수 있습니다.

저의 또 다른 해결책은 파이썬 재컴파일, 아나콘다 재설치 등이었는데, 결국 그럴 필요가 없어 다행입니다.

이것이 여러분들에게 도움이 되길 바랍니다.

를 사용하는 pyenv를 관리하기 위해 Mac OS Catalina를 설치해야 .openssl에 그 에 처에양조다음그에런후에한음그▁with런▁that후에▁first▁brew▁run▁after다▁then.pyenv install 3.7.8그것은 파이썬 설치를 사용하여 구축하는 것처럼 보였습니다.openssl홈브루(설치 출력에도 그렇게 표시됨).그리고나서pyenv global 3.7.8전 자리를 비웠어요

macro에서는 아래 명령으로 python 3.8.1을 구성하면 문제가 해결될 것입니다. Linux에서도 작동할 것으로 생각합니다.

./configure --enable-optimizations --with-openssl=/usr/local/opt/openssl@1.1/

시스템에 따라 dir 매개 변수를 변경합니다.

아나콘다 파워셸 프롬프트 $env의 일부를 모방하기 위해 몇 가지 PATH를 변경했습니다.경로

C:\Users\merheb\Miniconda3;C:\Users\merheb\Miniconda3\Library\mingw-w64\bin;C:\Users\merheb\Miniconda3\Library\usr\bin;C:\Users\merheb\Miniconda3\Library\bin;C:\Users\merheb\Miniconda3\Scripts;C:\Users\merheb\Miniconda3\bin;C:\Users\merheb\Miniconda3\condabin;

enter image description here

그리고 그것은 저에게 효과가 있었습니다.

Ubuntu 22.10에서는 소스에서 빌드하는 것이 제게 도움이 되었습니다.

OpenSSL을 수동으로 설치하고 여기서 OpenSSL 1.1.1s로 테스트한 후 추출하여 실행:

./config --prefix='/opt/openssl' --openssldir='/opt/ssl'
make
make install

그런 다음 이전 Python 3 버전(여기서는 Python-3.8.16)을 사용하여 다음을 실행합니다.

export LD_RUN_PATH='/opt/openssl/lib'
export CC='gcc-12'  # sudo apt install gcc-12
./configure --enable-optimizations \
            --with-openssl='/opt/openssl' \
            --prefix='/opt/python/3.8' -C
make
make install

테스트 대상:

/opt/python/3.8/bin/python3 -c 'import ssl; print(ssl.OPENSSL_VERSION)'
OpenSSL 1.1.1s  1 Nov 2022

centos 7과 python 3.6에 이 문제가 있습니다.그 어떤 답도 그것을 해결하지 못했고 저는 마침내 그것을 고치는 방법을 알아냈습니다.

먼저 다음 링크를 따라 소스 코드에서 openssl을 설치합니다.

openssl 설치

그런 다음 ssl 헤더 파일 "openssl/ssl"이 열립니다.h"가 경로에 있습니다.

/usr/local/openssl/include

ssl lib 파일이 경로에 있습니다.

/usr/local/openssl/lib

이제 소스 코드에서 파이썬을 컴파일합니다.컴파일하기 전에 다음으로 이동합니다.setup.py function 위찾기능을 찾습니다.detect_modules()'ssl' 파일을합니다.

다음 코드에 ssl 포함 파일 경로를 추가합니다.

        search_for_ssl_incs_in = [
                              '/usr/local/openssl/include'
                             ]

lib 파일의 경우 여기에 트릭이 있습니다.

코드가 먼저 일부 표준 시스템 경로에서 ssl lib 파일을 검색하고 있습니다.

lib_dirs: ['/usr/local/lib', '/lib64', '/usr/lib64', '/lib', '/usr/lib']

이러한 폴더 중 하나에 ssl lib 파일이 있으면 빈 경로를 반환하여 컴파일이 ssl을 건너뜁니다.여기서 논리를 알 수 없지만 저는 방금 이 경로에서 ssl lib 파일을 제거했습니다.에는 호트는에스내가 있습니다.libssl.a/lib하위 폴더로 이동합니다.

그런 다음 설정에서 ssl lib 경로를 할당합니다.py:

        ssl_libs = find_library_file(self.compiler, 'ssl',lib_dirs,
                                     [
                                      '/usr/local/openssl/lib'
                                     ] )

파이썬 컴파일:

./configure
make
make install

Python 문서는 실제로 매우 명확하며 지침을 따르는 것이 효과적인 반면 여기서 찾은 다른 답변은 이 문제를 해결하지 못했습니다.

  1. 먼저 https://www.python.org/ftp/python/3.6.2/Python-3.6.2.tar.xz 버전 3.6.2와 같이 소스에서 python 3.x.x를 설치합니다.

  2. openssl을 실행하여 합니다.brew install openssl

  3. 디렉토리로 합니다.tar xvzf Python-3.6.2.tar.xz && cd Python-3.6.2

  4. 그런 다음 파이썬 버전이 < 3.7이면 실행합니다.

CPPFLAGS="-I$(brew --prefix openssl)/include" \ LDFLAGS="-L$(brew --prefix openssl)/lib" \ ./configure --with-pydebug 마내침, 려라달을 실행합니다.make -s -j2(-s 플래그인 침묵깃니다발입의,입니다.-j2기계에 2개의 작업을 사용하도록 지시함)

Ubuntu14.04 시스템에 python3.7을 설치하려고 할 때 동일한 문제가 발생했습니다.문제는 PKG_CONFIG_PATH와 LD_LIBRARY_PATH에 일부 사용자 지정 폴더가 있어 python 빌드 프로세스에서 시스템 openssl 라이브러리를 찾을 수 없다는 것입니다.

그래서 그들을 제거하고 무슨 일이 일어나는지 보려고 노력합니다.

export PKG_CONFIG_PATH=""
export LD_LIBRARY_PATH=""

언급URL : https://stackoverflow.com/questions/41328451/ssl-module-in-python-is-not-available-when-installing-package-with-pip3

반응형