OpenSSL 사용시 SSL 백엔드 오류


87

pip를 사용하여 virtualenv에 pycurl을 설치하려고했는데이 오류가 발생했습니다.

ImportError: pycurl: libcurl link-time ssl backend (openssl) is different from compile-time ssl backend (none/other)

내가 말하는 몇 가지 문서를 읽어 "이 문제를 해결하려면, 당신은 무엇 SSL 백엔드를 사용 setup.py 말할 필요" (소스) 내가하지 않도록 내가 주사위를 사용하여 pycurl을 설치하기 때문에이 작업을 수행하는 방법입니다 있지만.

pip로 pycurl을 설치할 때 SSL 백엔드를 어떻게 지정할 수 있습니까?

감사


1
귀하의 OS는 무엇입니까?
Evgenii

답변:


121

INSTALLATION 파일을 읽은 후 환경 변수를 설정하여 문제를 해결할 수 있었고 다시 설치했습니다.

  • 기존 pycurl설치 제거

    pip uninstall pycurl

  • 링크 타임 SSL 백엔드로 변수 내보내기 (위의 openssl)

    export PYCURL_SSL_LIBRARY=openssl

  • 다음, 다시는 설치 pycurl전혀 캐시

    pip install pycurl --no-cache-dir

거기에 다른 해결책이있을 수 있지만 이것은 설치 virtualenvpip설치 에서 완벽하게 작동 합니다.


2
감사합니다, PYCURL_SSL_LIBRARY=openssl완벽하게 작동합니다!
thnee

들어 맥 OS X의 사용자 : 사용 기억하지 않는 set -x PYCURL_SSL_LIBRARY openssl대신를 export PYCURL_SSL_LIBRARY=openssl사용하면 생선 대신 콘솔을 bash는 .
Serge

13
PIP pycurl --no-캐시 디렉토리를 설치
서광 양에게

감사. 이 문제에 대한 여러 가지 잠재적 인 해결책을 살펴 보았습니다. 이 솔루션은 처음으로 작동했습니다.
Matt Setter

단계별 virtualenv 설치 예제 yippeecode.com/view-code/343QWQT144/…
helloworld2013

77

helloworld2013의 대답은 정확하지만 키는 pycurl이 예상하는 SSL 라이브러리와 일치합니다. 오류는 다음과 같습니다.

pycurl : libcurl 링크 타임 SSL 백엔드 ( <library> )가 컴파일 타임 SSL 백엔드 ( <라이브러리> 또는 " 없음 / 기타 ") 와 다릅니다.

이를 수정하려면 pycurl이 예상하는 라이브러리를 사용해야합니다. 제 경우, 내 오류는 " pycurl : libcurl link-time ssl backend ( nss ) is different from compile-time ssl backend (openssl) "이므로 수정 사항은 다음과 같습니다.

pip uninstall pycurl
export PYCURL_SSL_LIBRARY=nss
pip install pycurl

1
훌륭한 . 이것은 더 많은 표를 얻을 것입니다. 원래 답변은 일부 기계에 적용되었습니다. 이것은 당신의 플랫폼에 따라 그것을 고치는 더 일반적인 방법입니다.
Nishant

6
흠 이것은 Mac에서 나를 위해 작동하지 않았습니다. PYCURL_SSL_LIBRARY완전히 무시되는 것 같습니다 . 컴파일시 SSL 백엔드 "(기타 / 없음)"나를 위해, 비록 항상 echo PYCURL_SSL_LIBRARY제공하지 않습니다 openssl.
Edward Newell 2015 년

1
내가 PYCURL_SSL_LIBRARY, 백엔드 남아 (없음 / 기타)에 대한 NSS 지정 했더라도 @EdwardNewell처럼이 수정 프로그램은 과학 리눅스 (RHEL)에 나를 위해 일을하지 않았다
Yondaime008

3
Mac pycurl에서 다음 플래그를 제거 하고 설치했습니다.pip install --global-option="--with-openssl" --global-option=build_ext --global-option="-L/usr/local/opt/openssl/lib" --global-option="-I/usr/local/opt/openssl/include" pycurl
eigenein

2
이것은 작동했지만 pip install pycurl --compile --no-cache-dirCentOS 7.3 에서 다음 옵션으로 만 작동했습니다 .
Robert Yi

51

양조 설치된 openSSL 및 virtualenv 인 OSX 10.13을 사용하면 다음과 같은 성공을 거두었습니다.

workon ..your-environment-here..
pip uninstall pycurl
export PYCURL_SSL_LIBRARY=openssl
export LDFLAGS=-L/usr/local/opt/openssl/lib;export CPPFLAGS=-I/usr/local/opt/openssl/include;pip install pycurl --compile --no-cache-dir

4
예, MacOS 10.13.1 (High Sierra)에서 트릭을 만들었습니다! 감사합니다! openssl을 다시 설치하려면 :brew reinstall openssl
Denis Arnaud

1
내 문제를 해결했습니다. 감사합니다 :)
JeongjinKim

1
Mac OSX 10.13.4에서 문제가 수정되었습니다! 감사합니다.
user1192748 2010

1
감사합니다! 또한 내 문제를 해결했습니다. Mac OSX 10.13.4
Steven Church

2
Daryl이 유감입니다! Mojave에서 다시 작동했기 때문에 무슨 일이 일어나고 있는지 잘 모르겠습니다.
Michael Wilson

25

pip 7.1을 사용하면 요구 사항 파일에 다음을 넣을 수 있습니다.

pycurl==7.19.5.1 --global-option="--with-nss"

nss를 관련 SSL 백엔드 라이브러리로 바꾸면됩니다.


1
이 솔루션은 requirements.txt 파일에서 공유 할 수 있고 사용자별로 반복 할 필요가 없기 때문에 var를 내보내고 다시 설치하는 것보다 낫습니다.
dfarrell07

1
내보내기는 CentOS 7에서 작동하지 않았습니다. 그러나 전역 옵션 설정은 작동했습니다. 감사!
Aaron Nguyen

저는 여러분의 솔루션과 @Michael Wilson의 솔루션을 결합하여 macOS에서 작동하도록해야했습니다. 암호화 문제처럼 보인다 - 여기에 몇 가지 토론 : github.com/pyca/cryptography/issues/3489
kip2

20

Mac OS High Sierra 업데이트 후 pycurl을 수정하는 방법 :

  1. SecureTransport 대신 OpenSSL을 사용하도록 curl 라이브러리를 다시 설치하십시오.

    brew install curl --with-openssl
    
  2. 올바른 빌드 시간 환경 및 경로로 pycurl 설치

    export PYCURL_SSL_LIBRARY=openssl
    pip uninstall pycurl 
    pip install --no-cache-dir --global-option=build_ext --global-option="-L/usr/local/opt/openssl/lib" --global-option="-I/usr/local/opt/openssl/include" --user pycurl
    

2
High Sierra에서 나를 위해 일했습니다 (virtualenv 사용).
djangoat


High Sierra (virtualenv 사용)에서 저를 위해 일했지만 --user 플래그를 제거해야했습니다.
user495732 Why Me

대단히 감사합니다 !! 그것은 매우 도움이되었습니다. 높은 시에라을 실행하고 거기에 몇 시간을 보내고,이 :) 일을하는 유일한 솔루션입니다
알레산드로

내가 사용하는 경우 --user위와 같이 플래그를, 내가 가지고 :Can not perform a '--user' install. User site-packages are not visible in this virtualenv.
대릴 스피처

19

이것은 나를 위해 일했습니다.

pip uninstall pycurl
export PYCURL_SSL_LIBRARY=nss
easy_install pycurl

이 중 어느 것도 나를 위해 일하지 않았습니다 (차이점은 단순히 easy_install 대 pip입니다).

pip uninstall pycurl
export PYCURL_SSL_LIBRARY=[nss|openssl|ssl|gnutls]
pip install pycurl
#xor
curl -O https://pypi.python.org/packages/source/p/pycurl/pycurl-7.19.3.1.tar.gz
#...
python setup.py --with-[nss|openssl|ssl|gnutls] install

1
easy_install옵션은 일 단 하나였다. 나는 이것이 왜 그렇게 복잡한 지 이해하지 못합니다. 나는 필요했다 export PYCURL_SSL_LIBRARY=openssl. 내 하나는 컴파일 된 라이브러리에 대해 "없음 / 기타"를보고했습니다.
CMCDragonkai

방금이 문제가 발생했고이 솔루션이 저에게 효과적이었습니다.
Boudewijn Aasman

2
내 경험상 pip는 OS와 함께 설치된 이전 버전의 pucurl을 완전히 제거하지 않습니다 (내 경우에는 Centos7.2). Pip은 이전 버전의 /usr/lib64/python2.7/site-packages/pycurl.so 및 egg-info 파일을 건드리지 않았습니다. 반면에 Easy_install은 사이트 패키지에 pycurl egg를 배치하는 것 외에도이를 지 웠습니다.
sokhaty

위의 모든 것을 시도했지만 작동하지 않았습니다. 이것은 내 원래 오류 메시지가```ImportError : pycurl : libcurl link-time ssl backend (openssl) is different from compile-time ssl backend (none / other)```일 때 저에게 효과적이었습니다
James McCormac

10

나는 며칠 동안이 문제가 있었다. 마지막으로 여기에있는 다른 답변 (주로 Alexander Tyapkov의)의 도움으로 AWS Elastic Beanstalk에서 작동하도록했습니다.

수동 설치 (SSH로 연결) :

sudo pip uninstall pycurl
curl -O https://pypi.python.org/packages/source/p/pycurl/pycurl-7.43.0.tar.gz
sudo pip install pycurl-7.43.0.tar.gz --global-option="--with-nss"

중요 : 현재 버전의 Python 및 PIP를 사용하고 있는지 확인해야합니다. 그렇지 않으면 Python 2.x 용으로 컴파일하고 v3.x를 사용할 수 있습니다.

Elastic Beanstalk에 자동 설치 :

files:
  "/usr/local/share/pycurl-7.43.0.tar.gz" :
    mode: "000644"
    owner: root
    group: root
    source: https://pypi.python.org/packages/source/p/pycurl/pycurl-7.43.0.tar.gz

commands:
  01_download_pip3:
    # run this before PIP installs requirements as it needs to be compiled with OpenSSL
    command: 'curl -O https://bootstrap.pypa.io/get-pip.py'
  02_install_pip3:
    # run this before PIP installs requirements as it needs to be compiled with OpenSSL
    command: 'python3 get-pip.py'
  03_pycurl_uninstall:
    # run this before PIP installs requirements as it needs to be compiled with OpenSSL
    command: '/usr/bin/yes | sudo pip uninstall pycurl'
  04_pycurl_download:
    # run this before PIP installs requirements as it needs to be compiled with OpenSSL
    command: 'curl -O https://pypi.python.org/packages/source/p/pycurl/pycurl-7.43.0.tar.gz'
  05_pycurl_reinstall:
    # run this before PIP installs requirements as it needs to be compiled with OpenSSL
    command: 'sudo pip install pycurl-7.43.0.tar.gz --global-option="--with-nss"'

container_commands:
  09_pycurl_reinstall:
    # run this before PIP installs requirements as it needs to be compiled with OpenSSL
    # the upgrade option is because it will run after PIP installs the requirements.txt file.
    # and it needs to be done with the virtual-env activated
    command: 'source /opt/python/run/venv/bin/activate && pip3 install /usr/local/share/pycurl-7.43.0.tar.gz --global-option="--with-nss" --upgrade'

Elastic Beanstalk에서 Django 1.10으로 Celery 4를 구성하려고했기 때문에이 문제가 발생했습니다. 이 경우에 대한 전체 블로그 게시물을 작성했습니다 .


고마워요. 특히 eb 구성 파일이 매우 변덕스럽고 합리적인 오류 (포맷 문제 포함)를 제공하지 않기 때문에이 항목은 성 가실 수 있습니다.
Ian

AWS에 pycurl을 설치할 때 비슷한 문제를 해결하는 데 많은 도움이 되었기 때문에이 답변을 찬성했습니다. stackoverflow.com/questions/51019622/…
Greg Holst

8

저는 CentOS 7을 사용하고 있습니다. 위의 모든 사항을 시도했지만 아무것도 작동하지 않았습니다. 루트 사용자로 실행해야하는 것으로 밝혀졌습니다. 따라서 문제가있는 경우 루트 사용자로 위의 해결 방법 중 하나를 시도하십시오. 예를 들어 다음은 나를 위해 일한 것입니다.

su -
pip uninstall pycurl
export PYCURL_SSL_LIBRARY=[nss|openssl|ssl|gnutls]
pip install pycurl

물론 루트 사용자로 실행하는 것에 대한 모든 일반적인 고지 사항이 적용됩니다.

참고 : 위 코드에서 [nss | openssl | ssl | gnutls]는 하나를 선택하는 것을 의미하며 대괄호 나 파이프를 포함하지 마십시오. 원래 질문을 한 사람은 openssl을 선택했을 것입니다. 제 경우에는 nss를 선택했습니다. 오류 메시지는 어떤 선택을해야하는지 알려줍니다.

2019 편집 : 수행하면 sudo pip install시스템의 Python 시스템 설치에 문제가 발생할 수 있습니다. 아마도 Python 가상 환경에서 작업하고 거기에 패키지를 설치해보십시오. 그래도 작동하지 않으면 내 대답의 sudo 트릭이 고려할 마지막 옵션 중 하나 일 것입니다.


5

여기 에서 tar.gz 파일을 다운로드 할 수 있습니다 . 그런 다음 폴더에 압축을 풉니 다. 거기에 setup.py 파일이 있습니다. 사이트에서 언급 한 명령을 실행하십시오. 예를 들면 :

python setup.py --with-[ssl|gnutls|nss] install

참고 : 창문에 pycurl을 설치하려고했지만 할 수 없었습니다. 그러나 내 리눅스에서 해냈습니다.


응답 해 주셔서 감사합니다.하지만 이것은
helloworld2013

@Sabuj는 설치 pycurl을 이 우수한 웹 사이트에서 제공하는 설치 프로그램의 윈도우를 사용 하나 : lfd.uci.edu/~gohlke/pythonlibs/#pycurl
아담

4

나는 이것을 OS X에서 실행하고 있으며 위의 솔루션 중 일부가 작동하지 않았습니다. Edward Newell의 의견 과 유사하게 PYCURL_SSL_LIBRARY변수는 완전히 무시 된 것 같습니다. PycURL 설치 문서를
더 읽으면 다음이 드러났습니다.

pip는 새로 지정된 옵션으로 pycurl을 다시 컴파일하는 대신 이전에 컴파일 한 패키지를 다시 설치할 수 있습니다.

따라서 다음과 같이 강제로 컴파일해야했습니다.

pip install --compile pycurl

그것은 많은 경우에서 작동합니다. 그러나 변수를 계속 무시하는 몇 가지 시스템이 있으므로 maharg101의 답변 과 유사하게 pip를 통해 다음과 같이 설정할 수있는 설치 옵션에 의존했습니다.

pip install pycurl --global-option="--with-[ssl|gnutls|nss]"

대괄호 안의 세 가지 옵션 중 하나를 선택합니다. 사용할 수있는 옵션이 있음을 주목 ssl하고 하지 openssl . 지정 --with-openssl하면 오류가 발생합니다. 또한 PYCURL_SSL_LIBRARY변수를 엉망으로 만들고 펑키 값으로 전환하여 어떤 일이 발생하는지 확인하는 경우이 마지막 명령은 값이 설정되었지만 유효하지 않은 경우 오류를 확실히 포착하고 오류를 발생시킵니다.


1
먼저 pycurl을 제거 pip install pycurl --global-option="--with-nss"하고 나를 위해 작동합니다. 기록을 위해 내 오류는ImportError: pycurl: libcurl link-time ssl backend (nss) is different from compile-time ssl backend (openssl)
ahyong

감사합니다 @ahyong 글로벌 옵션 트릭은 타르에서 설치하는 동안, 그것은 ... 핍와 함께 일하지만 setup.py 이상한와 내가 시도에도 불구하고, 나를 위해 일한
Yondaime008

4

컬 재설치

이 토론에서 모든 제안을 시도했지만 아무도 나를 위해 일하지 않았습니다. 해결책으로 curl과 curlib를 다시 설치했습니다. 그 후 환경 내에서 ssl 지원으로 pycurl을 설치할 수있었습니다.

시작시 :

'PycURL / 7.43.0 libcurl / 7.47.0 GnuTLS / 3.4.10 zlib / 1.2.8 libidn / 1.32 librtmp / 2.3'

1 부. pip로 재설치 / 설치

먼저 이전 답변에서 제안한 것처럼 pip를 사용하여 virtualenv에서 pycurl을 제거했습니다.

pip uninstall pycurl
export PYCURL_SSL_LIBRARY=openssl
pip install pycurl --global-option="--with-openssl"

여기서 아이디어는 패키지가 캐시되었으며 openssl 옵션으로 다시 설치한다는 것입니다.

또한 다음을 사용하여 pip로 pycurl을 다시 컴파일하려고 시도했습니다.

pip install pycurl --compile pycurl --no-cache

..하지만 실행 후 동일한 오류가 발생했습니다.

python
import pycurl
pycurl.version

ImportError : pycurl : libcurl 링크 타임 SSL 백엔드 ( gnutls )가 컴파일 타임 SSL 백엔드 ( openssl ) 와 다릅니다.

2 부. tar에서 설치

이전 방법이 작동하지 않으면 다음을 사용하여 tar에서 pycurl을 설치하기로 결정했습니다.

curl -O https://pypi.python.org/packages/source/p/pycurl/pycurl-7.43.0.tar.gz
sudo tar -xzvf pycurl-7.43.0.tar.gz
cd pycurl-7.43.0/
sudo python setup.py --with-ssl install

pycurl을 전역 적으로 설치했지만 virtualenv 내에는 설치하지 않았습니다. 또한 SSL 지원으로 설치되었는지 확인하지 않았지만 여전히 SSL이 없다고 생각했습니다.

Part 3. curl 및 curllib 재설치

마지막으로 전역 curl과 libcurl이 gnutls로 컴파일되기 때문에 pycurl이 환경에 정상적으로 설치되지 않는다는 것을 이해했습니다.

시작하기 전에 다음으로 확인하십시오.

curl-config --configure

출력 라인 중 하나는

'--ssl없이' '--gnutls 포함'

다시 컴파일하려면 :

먼저 컬 제거 :

sudo apt-get purge curl

curl에 필요한 빌드 종속성 설치

sudo apt-get build-dep curl

최신 libcurl 가져 오기 (2016 년 12 월 20 일 기준)

mkdir ~/curl
wget http://curl.haxx.se/download/curl-7.51.0.tar.bz2
tar -xvjf curl-7.51.0.tar.bz2
cd curl-7.51.0

소스에서 앱을 빌드하는 일반적인 단계

./configure
./make
 sudo make install

openssl이 올바르게 설치된 경우 configure가 자동으로 찾습니다. 출력은 다음과 같습니다.

curl 버전 : 7.51.0
호스트 설정 : x86_64-pc-linux-gnu
설치 접두사 : / usr / local
컴파일러 : gcc
SSL 지원 : 활성화 됨 (OpenSSL) ...

C 레벨 lib 위치 ​​캐시 ( "공유 라이브러리 캐시") 문제 해결

sudo ldconfig

이제 환경 내에서 pycurl을 다시 설치하십시오.

curl -O https://pypi.python.org/packages/source/p/pycurl/pycurl-7.43.0.tar.gz
pip install pycurl-7.43.0.tar.gz --global-option="--with-openssl"

결과는 다음과 같아야합니다.

python
import pycurl
pycurl.version

'PycURL / 7.43.0 libcurl / 7.51.0 OpenSSL / 1.0.2g zlib / 1.2.8 librtmp / 2.3'


3

macOS Mojave에서 PyCharm CE 내부에 문제가있는 사람을 위해 이것이 venv에서 작동하는 방법입니다.

  • 버전 지정 : 7.43.0.1
  • 옵션 : --install-option =-with-openssl --install-option =-openssl-dir = / usr / local / opt / openssl

PyCharm 프로젝트 인터프리터 스크린 샷


1
macOS Mojave에서 나에게는 brew 다시 설치 openssl을 실행 한 다음 pip install pycurl == 7.43.0.1 --install-option =-with-openssl --install-option =-openssl-dir = / usr / local / opt / openssl
user495732 Why Me

2

이것은 나를 위해 일했습니다.

pip install --compile --install-option = "-with-openssl"pycurl


2

나는 성공하지 못한 채 macOS 10.13에서 모든 것을 시도했습니다. 그런 다음 https://gist.github.com/webinista/b4b6a4cf8f158431b2c5134630c2cbfe 를 찾았습니다 .

brew install curl --with-openssl
pip uninstall pycurl
export PYCURL_SSL_LIBRARY=openssl
export LDFLAGS=-L/usr/local/opt/openssl/lib;export CPPFLAGS=-I/usr/local/opt/openssl/include; pip install pycurl --compile --no-cache-dir

이것은 virtualenv를 사용하지 않을 때와 virtualenv 내에서 모두 저에게 효과적이었습니다.


1

이것이 virtualenv에서 실행되기 때문인지 확실하지 않지만 CentOS 7에서는 이러한 솔루션이 작동하지 않았습니다. 다시 설치할 때 컴파일 된 개체가 여전히 캐시 디렉터리에서 가져 왔습니다. 여기에서 다른 솔루션을 시도한 후에도 동일한 문제가 발생하면 다음을 시도하십시오.

pip uninstall pycurl
export PYCURL_SSL_LIBRARY=[nss|openssl|ssl|gnutls]
pip install pycurl --no-cache-dir

여기와 마찬가지로 CentOS 7에서는 --no-cahe-dir옵션을 추가 할 때까지 작동하지 않았습니다 . su -@alfonso가 제안한 것처럼 루트에서만 실행되었음을 추가로 언급하고 싶습니다 . 하는 sudo pip3 ...것만으로는 충분하지 않았습니다. 아마도 환경 변수를 선택하는 데 필요합니다.
Nagev

1

오류:

ImportError : pycurl : libcurl 링크 타임 SSL 백엔드 (openssl)가 컴파일 타임 SSL 백엔드와 다릅니다 (없음 / 기타).

이것은 나를 위해 일했습니다 .Mac 10.13, python 3.5, pycurl 가져 오기는 다음과 같이 설치 한 후 작동했습니다.

pip3 uninstall pycurl;

pip3 install --compile --install-option="--with-openssl" pycurl

이것은 High Sierra의 Python 2.7.10에서도 저에게 효과적이었습니다.
skyler

1

오랫동안 이것에 갇힌 후 OS X 10.11 El Capitan 이후 Apple이 OpenSSL 헤더를 포함하지 않는 것을 알았습니다. 어떻게 고치는 지?

1) brew install openssl

2) echo 'export PATH="/usr/local/opt/openssl/bin:$PATH"' >> ~/.bash_profile (or .zshrc for zsh, etc)

3) pip uninstall pycurl

4) pip install --install-option="--with-openssl" --install-option="--openssl-dir=/usr/local/opt/openssl" pycurl

물론입니다. 작동하는 데 많은 시간이 걸렸습니다. 꽤 성가신 말을해야합니다. 즐기세요 !!
Whitebear

1

amazonlinux에서 동일한 문제-amazonlinux를
기반으로 도커 이미지를 생성하고 python3.7을 설치하고 pycurl 모듈을 추가하는 동안이 문제가 해결되었습니다 . pycurl을 제외한 다른 모든 파이썬 모듈이 올바르게 설치되었습니다. 이 문제와 관련된 스레드에서 제안 된 많은 솔루션을 시도한 후 마침내 모든 조각을 설치하기 위해 다음 명령을 사용하여 문제를 해결했습니다.
yum -y install python3 python3-devel gcc libcurl-devel aws-cli openssl-static.x86_64
그런 다음 다음을 사용하여 psycopg2-binary, requests, certifi와 같은 다른 모듈을 설치했습니다.
pip3 install --user --no-cache-dir -r requirements.txt

마지막으로 다음을 사용하여 pycurl 모듈을 설치했습니다.

pip3 install --user --global-option="--with-openssl" --no-cache-dir pycurl
여기에 openssl 전역 옵션을 전달합니다. 정적 라이브러리 openssl-static.x86_64를 설치 하면 두 번째 pip3 명령에서 사용되는 전역 옵션을 사용하여 문제가 해결되었습니다.


0

Python 2.7의 경우

sudo apt-get install build-essential libssl-dev libffi-dev python-dev

파이썬 3.5의 경우 다음을 설치하십시오.

sudo apt-get install python3.5-dev

pypi https://pypi.python.org/pypi/pycurl/7.43.0#downloads 에서 최신 pycurl-7.43.0.tar.gz (md5) 소스를 다운로드하고 다음 명령을 실행합니다.

python setup.py --with-openssl install

또한 파이썬 환경에서 할 수 있습니다.

(test_env)user@pc:~/Downloads/pycurl-7.43.0$ python setup.py --with-openssl install

0
pip install -U pip

if [ "$(curl --version | grep NSS 2>/dev/null)" ]; then
    pip install --compile --install-option="--with-nss" pycurl
else
    pip install --compile --install-option="--with-openssl" pycurl
fi

0

이 문제가 발생했고 Sanket Jagtap의 답변 이 저에게 효과적 이었습니다. 가장 많은 표를 얻은 답변을 시도했지만 작동하지 않았습니다.

내 openssl 이전 버전은 1.0.1t입니다. openssl을 다시 설치하면이 문제가 해결 될 수 있다고 생각합니다.

--- pycurl's openssl backend time....

최신 openssl을 다시 작성 하고이 답변을 시도 했습니다 . 이것 좀 봐.

pip install --compile --install-option="--with-openssl" pycurl

이것은 나를 위해 일했습니다.

나는 우리가 시도를 위해 우리의 openssl을 다시 설치하는 것이 좋습니다 ..


0

다음은 Python3.6으로 나를 위해 일했습니다.

MacOS High-Sierra

sudo pip3 uninstall pycurl
sudo pip3 install --compile --install-option="--with-openssl" pycurl 

CentOS 7

sudo pip3 uninstall pycurl
sudo pip3 install --compile --install-option="--with-nss" pycurl


0

FWIW, AWS Elastic Beanstalk를 통해이 작업을 수행하는 데 많은 문제가 발생했으며 마침내 다음과 같은 작업을 수행 할 수있었습니다.

packages:
  yum:
    openssl-devel: []
    libcurl-devel: []

container_commands:
  # Reinstall PyCurl with correct ssl backend
  05_reinstall_pycurl:
    command: |
      pip install --upgrade pip
      pip uninstall -y pycurl
      pip install --global-option='--with-openssl' pycurl

0

최근에 Django 프로젝트를 업그레이드하는 동안 비슷한 오류가 발생했습니다. 그러나 이번에는 환경 변수 설정이 작동하지 않았습니다. 그래서 환경 변수를 모두 설정 export PYCURL_SSL_LIBRARY=openssl하고 플래그를 전달해야했습니다 --global-option="with-openssl".

페이지 에 원래 답변이 게시되었습니다 .


-1
export CPPFLAGS=-I/usr/local/opt/openssl/include
export LDFLAGS=-L/usr/local/opt/openssl/lib

pip install pycurl --global-option="--with-openssl"
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.