OpenSSL kullanılırken SSL arka uç hatası


88

Pip kullanarak bir virtualenv'de pycurl kurmaya çalışıyordum ve bu hatayı aldım

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

"Bunu düzeltmek için, setup.py'ye hangi SSL arka ucunun kullanıldığını söylemeniz gerekir" (kaynak) diyen bazı belgeleri okudum , ancak pycurl'u pip kullanarak yüklediğim için bunu nasıl yapacağımı bilmiyorum.

Pycurl'yi pip ile kurarken SSL arka ucunu nasıl belirtebilirim?

Teşekkürler


1
İşletim Sisteminiz nedir?
Evgenii

Yanıtlar:


121

KURULUM dosyalarını okuduktan sonra, bir ortam değişkeni ayarlayarak sorunumu çözebildim ve yeniden yükledim

  • mevcut pycurlkurulumu kaldır

    pip uninstall pycurl

  • bağlantı zamanı ssl arka ucunuzla değişken dışa aktarın (yukarıdaki openssl'dir)

    export PYCURL_SSL_LIBRARY=openssl

  • Daha sonra, yeniden yüklemek pycurlile hiçbir cache

    pip install pycurl --no-cache-dir

Orada başka bir çözüm olabilir ama bu benim için a virtualenvve pipkurulumda mükemmel çalışıyor .


2
Teşekkürler, PYCURL_SSL_LIBRARY=opensslmükemmel çalışıyor!
2014

For Mac OS X kullanıcıları: kullanılmasını hatırlamıyorum set -x PYCURL_SSL_LIBRARY opensslyerine export PYCURL_SSL_LIBRARY=opensslkullanırsanız balık yerine konsolu bash .
Serge

13
pip install pycurl --no-cache-dir
Shuguang Yang

Teşekkürler. Bu soruna bir dizi olası çözümü inceledim. Bu çözüm ilk seferinde işe yaradı.
Matt Setter

adım adım virtualenv yükleme örneği yippeecode.com/view-code/343QWQT144/…
helloworld2013

77

helloworld2013'ün yanıtı doğru, ancak anahtar pycurl'ün beklediği SSL kitaplığı ile eşleşiyor. Hata şöyle bir şey olacaktır:

pycurl: libcurl bağlantı zamanı ssl arka ucu ( <library> ), derleme zamanı ssl arka ucundan ( <library> veya " hiçbiri / diğer ") farklıdır

Düzeltmek için, pycurl'ün beklediği kütüphaneyi kullanmanız gerekir. Benim durumumda, benim hatam " pycurl: libcurl bağlantı zamanı ssl arka ucu ( nss ) derleme zamanı ssl arka uçtan (openssl) " farklıydı , dolayısıyla düzeltmem şuydu:

pip uninstall pycurl
export PYCURL_SSL_LIBRARY=nss
pip install pycurl

1
Parlak . Bu daha fazla oy almalı. Orijinal cevap bazı makinelere uygulandı. Bu, platformunuza bağlı olarak düzeltmenin daha genel bir yoludur.
Nishant

6
hmm bu benim için Mac'te işe yaramadı. Görünüşe PYCURL_SSL_LIBRARYgöre tamamen görmezden geliniyor. Derleme zamanı ssl arka uç "(/ diğer yok)" benim için olsa da her zaman echo PYCURL_SSL_LIBRARYverir openssl.
Edward Newell

1
@EdwardNewell gibi, bu düzeltme Scientific Linux'ta (Rhel) benim için işe yaramadı, ancak PYCURL_SSL_LIBRARY için nss belirtmiş olsam da, arka uç kaldı (hiçbiri / diğer)
Yondaime008

3
Mac'te pycurlşu bayraklarla kaldırdım ve yükledim: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
Bu işe yaradı, ancak yalnızca aşağıdaki seçeneklerle: pip install pycurl --compile --no-cache-dirCentOS 7.3'te.
Robert Yi

52

MacOS 10.13, brew yüklü bir openSSL ve virtualenv ile şu konularda başarılı oldum:

# cd to your virtualenv, then…
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
Evet, macOS 10.13.1'de (High Sierra) hile yaptı! Çok teşekkürler! Openssl'yi yeniden yüklemek için:brew reinstall openssl
Denis Arnaud

1
Sorunumu onunla çözdüm. Teşekkürler :)
JeongjinKim

1
Mac OSX 10.13.4'teki sorun düzeltildi! Teşekkür ederim.
user1192748

1
Teşekkür ederim! Ayrıca sorunumu çözdüm. Mac OSX 10.13.4
Steven Church

2
Daryl bunu duyduğuma üzüldüm! Mojave'de benim için tekrar çalıştı, bu yüzden ne olduğundan emin değilim.
Michael Wilson

25

Pip 7.1 ile aşağıdakileri gereksinimler dosyanıza koyabilirsiniz:

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

Nss'yi ilgili SSL arka uç kitaplığıyla değiştirmeniz yeterlidir.


1
Bu çözüm, bir değişkeni dışa aktarıp yeniden yüklemekten daha iyidir, çünkü gereksinimler.txt dosyasında paylaşılabilir ve kullanıcı başına yinelenmesi gerekmez.
dfarrell07

1
İhracat benim için CentOS 7'de çalışmadı. Ancak genel seçeneği ayarlamak işe yaradı. Teşekkürler!
Aaron Nguyen

MacOS'ta çalışmasını sağlamak için çözümünüzü ve @ Michael Wilson'ın çözümünü birleştirmek zorunda kaldım. Bir kripto sorunu gibi görünüyor - burada biraz tartışma: github.com/pyca/cryptography/issues/3489
kip2

20

Mac OS High Sierra güncellemesinden sonra pycurl'u düzeltme yöntemi:

  1. SecureTransport yerine OpenSSL kullanmak için curl kitaplıklarını yeniden yükleyin

    brew install curl --with-openssl
    
  2. Pycurl'yi doğru derleme ortamı ve yolları ile kurun

    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
Benim için High Sierra'da çalıştı (bir virtualenv kullanarak).
djangoat

1
Evet! Ayrıca bu makaleye bakın cscheng.info/2018/01/26/…
somecallitblues

High Sierra benim için çalıştı (bir VIRTUALENV kullanarak) ama --user bayrağını kaldırmak zorunda kaldı
user495732 Neden Beni

Çok teşekkür ederim!! Bu inanılmaz derecede yardımcı oldu. High Sierra'yı çalıştırmak ve üzerinde birkaç saat harcamak, işe yarayan tek çözüm budur :)
Alessandro

--userBayrağı yukarıdaki gibi kullandığımda, şunları elde ettim:Can not perform a '--user' install. User site-packages are not visible in this virtualenv.
Daryl Spitzer

19

Bu benim için çalıştı:

pip uninstall pycurl
export PYCURL_SSL_LIBRARY=nss
easy_install pycurl

Bunların hiçbiri benim için işe yaramadı (farkın basitçe easy_install ile pip olduğunu unutmayın):

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_installSeçenek çalışan tek biriydi. Bunun neden bu kadar karmaşık olduğunu anlamıyorum. İhtiyacım vardı export PYCURL_SSL_LIBRARY=openssl. Birim derlenen kitaplık için "hiçbiri / diğer" olduğunu bildirdi.
CMCDragonkai

Sadece bu problemle karşılaştım ve bu çözüm benim için çalışan tek çözümdü.
Boudewijn Aasman

2
Deneyimlerime göre pip, işletim sistemi ile kurulan eski pucurl sürümünü tamamen kaldırmıyor (benim durumumda Centos7.2). Pip, /usr/lib64/python2.7/site-packages/pycurl.so ve önceki sürümden yumurta-bilgi dosyalarına dokunmadı. Easy_install öte yandan, pycurl yumurtasını site paketlerine yerleştirmenin yanı sıra bunları da sildi.
sokhaty

Ugh, yukarıdakilerin hepsini denedim ve işe yaramadı. Bu, orijinal hata mesajım `` ImportError: pycurl: libcurl link-time ssl backend (openssl), compile-time ssl backend'den (none / other) farklı olduğunda '' olduğunda işe yaradı. ''
James McCormac

10

Bu problemi günlerce yaşadım. Son olarak, buradaki diğer cevapların (özellikle Alexander Tyapkov'un) yardımıyla AWS Elastic Beanstalk için çalıştırdım.

Manuel kurulum (SSH ile bağlantı):

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"

ÖNEMLİ: Lütfen Python ve PIP'in geçerli sürümünü kullandığınızdan emin olmanız gerektiğini unutmayın, aksi takdirde Python 2.x için derliyor ve v3.x kullanıyor olabilirsiniz.

Elastic Beanstalk'a otomatik yükle:

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'

Bu sorunu yaşadım çünkü Celery 4'ü Elastic Beanstalk'ta Django 1.10 ile yapılandırmaya çalışıyordum. Eğer durum buysa, bununla ilgili tam bir blog yazısı yazdım .


ugh teşekkür ederim. bu şeyler can sıkıcı olabilir, özellikle de eb yapılandırma dosyaları çok kararsız göründüğü ve size asla makul hatalar vermediği için (biçimlendirme sorunları dahil)
Ian

AWS'ye pycurl yüklerken benzer bir sorunu çözmeme çok yardımcı olduğu için bu yanıta oy verdim: stackoverflow.com/questions/51019622/…
Greg Holst

8

CentOS 7'deyim. Yukarıdakilerin hepsini denedim ve işe yarayacak hiçbir şey bulamadım. Bunları bir root kullanıcısı olarak çalıştırmam gerektiği ortaya çıktı. Dolayısıyla, sorun yaşıyorsanız, yukarıdaki çözümlerden herhangi birini bir kök kullanıcı olarak deneyin. Örnek olarak, işte benim için işe yarayan şey:

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

Tabii ki, root kullanıcısı olarak çalıştırmayla ilgili tüm genel sorumluluk reddi beyanları geçerlidir.

Not: Yukarıdaki koddaki [nss | openssl | ssl | gnutls], birini seçmek anlamına gelir ve köşeli parantez veya boruları dahil etmeyin. Orijinal soruyu soran kişi openssl'yi seçerdi. Benim özel durumumda, nss'i seçtim. Hata mesajınız size hangi seçimi yapacağınızı söylemelidir.

2019 Düzenleme: Bir yapmak sudo pip install, makinenin Python sistem kurulumunda bir soruna neden olabilir. Belki bir Python sanal ortamında çalışmayı ve paketleri oraya kurmayı deneyin. Bu işe yaramazsa, cevabımdaki sudo numarası muhtemelen dikkate alınması gereken son seçeneklerden biridir.


5

Sen gelen tar.gz dosyasını indirebilirsiniz burada . Ardından bunu bir klasöre çıkarın. Orada bir setup.py dosyası bulacaksınız. Orada belirtilen sitenin komutunu çalıştırın. Örneğin:

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

Bilginize: Pencereme pycurl kurmayı denedim ama yapamadım. Ama bunu linuxumda yaptım.


yanıt için teşekkürler, ancak bu sadece kurulumu bir virtualenv ve pip aracılığıyla yapmazsam işe yarayabilir
helloworld2013

@Sabuj, pycurl'u Windows'a yüklemek için bu mükemmel web sitesinde sağlanan yükleyicilerden birini kullanın: lfd.uci.edu/~gohlke/pythonlibs/#pycurl
Adam

4

Bunu OS X üzerinde çalıştırıyorum ve yukarıdaki çözümlerden bazıları çalışmıyordu. Benzer Edward Newell commentPYCURL_SSL_LIBRARY değişkeni tamamen sayıldı gibiydi. PycURL kurulum belgesinin
daha fazla okunması aşağıdakileri ortaya çıkardı:

pip, pycurl'yi yeni belirtilen seçeneklerle yeniden derlemek yerine önceden derlediği paketi yeniden yükleyebilir

Bu nedenle, onu derlemeye zorlamam gerekti:

pip install --compile pycurl

Bu, birkaç durumda işe yarar. Ancak, değişkeni görmezden gelmeye devam eden birkaç sistemle karşılaştım, bu yüzden maharg101'in cevabına benzer şekilde , pip aracılığıyla şu şekilde ayarlanabilen kurulum seçeneklerine başvurdum:

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

köşeli parantezlerin içindeki üç seçenekten birini seçtiğiniz yerde. Mevcut seçeneğin olduğuna sslve olmadığına dikkat edin openssl. Eğer belirtirseniz --with-opensslbir hata alırsınız. Ayrıca, PYCURL_SSL_LIBRARYdeğişkenle uğraşıyorsanız ve ne olacağını görmek için onu korkak değerlere geçirdiyseniz, bu son komutun kesinlikle onu yakalayacağını ve değer ayarlanmış ancak geçerli değilse bir hata atacağını unutmayın.


1
önce pycurl'u kaldırın ve pip install pycurl --global-option="--with-nss"benim için çalışın . Bilginize, ImportError: pycurl: libcurl link-time ssl backend (nss) is different from compile-time ssl backend (openssl)
hatam

Teşekkürler @ahyong, genel seçenek hilesi benim için çalıştı, tar'dan yüklerken denediğim halde pip ile çalıştı ama setup.py tuhaf ...
Yondaime008

4

Curl'nin yeniden yüklenmesi

Bu tartışmadan gelen her öneriyi denedim ama kimse benim için çalışmadı. Çözüm olarak curl ve curlib'i yeniden yükledim. Sonrasında ssl desteği ile pycurl kurabildim.

Başlangıçta:

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

Bölüm 1. Pip ile Yeniden / Kurulum

Öncelikle, önceki cevaplarda önerildiği gibi pip kullanarak pycurl'u virtualenv'den kaldırdım:

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

Buradaki fikir, paketin önbelleğe alınmış olmasıdır ve biz onu openssl seçeneğiyle yeniden yükleriz.

Ayrıca pycurl'yi pip ile yeniden derlemeye çalıştım:

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

..ama çalıştırdıktan sonra aynı hatayı aldı:

python
import pycurl
pycurl.version

ImportError: pycurl: libcurl bağlantı zamanı ssl arka ucu ( gnutls ), derleme zamanı ssl arka ucundan ( openssl ) farklıdır

Bölüm 2. Tar'dan yükleme

Önceki yöntem işe yaramadıktan sonra, pycurl'u tar'dan şu şekilde yüklemeye karar verdim:

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'u global olarak kurdu, ancak virtualenv içinde değil. Ayrıca SSL desteği ile kurulup kurulmadığını da kontrol etmedim ama hala SSL olmadan olduğunu düşünüyorum.

Bölüm 3. Curl ve curllib'in yeniden yüklenmesi

Sonunda pycurl'un ortama normal şekilde yüklenmediğini anladım çünkü global curl ve libcurl gnutls ile derleniyor.

Başlamadan önce şunlarla kontrol edin:

curl-config --configure

Çıkış satırlarından biri

'--without-ssl' '--with-gnutls'

Yeniden derlemek için:

Öncelikle kıvrımı kaldırın:

sudo apt-get purge curl

Curl için gereken tüm derleme bağımlılıklarını yükleyin

sudo apt-get build-dep curl

En son (20 Aralık 2016 itibariyle) libcurl'yi edinin

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

Kaynaktan bir uygulama oluşturmak için olağan adımlar

./configure
./make
 sudo make install

Openssl doğru kuruluysa, configure betiğini otomatik olarak bulacaktır. Çıktı şu şekilde olacaktır:

curl sürümü: 7.51.0
Ana bilgisayar kurulumu: x86_64-pc-linux-gnu
Yükleme öneki: / usr / local
Derleyici: gcc
SSL desteği: etkin (OpenSSL) ...

C düzeyinde kitaplık konumu önbellekleriyle ilgili tüm sorunları çözün ("paylaşılan kitaplık önbelleği")

sudo ldconfig

Şimdi pycurl'yi ortam içinde yeniden yüklemeyi deneyin:

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"

Sonuç şöyle olmalıdır:

python
import pycurl
pycurl.version

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


4

MacOS Mojave'de PyCharm CE'de sorun yaşayan herkes için venv'de şu şekilde çalıştırdım:

  • sürümü belirtin: 7.43.0.1
  • Seçenekler: --install-option = - with-openssl --install-option = - openssl-dir = / usr / local / opt / openssl

PyCharm Project Interpreter ekran görüntüsü


1
Benim için macOS Mojave'de brew yeniden kurulumunu çalıştırmam gerekiyordu ve ardından pip install pycurl == 7.43.0.1 --install-option = - with-openssl --install-option = - openssl-dir = / usr / local / opt / openssl
user495732 Why Me

3

MacOS 10.13'te her şeyi burada denedim ve başarılı olamadım. Sonra işe yarayan https://gist.github.com/webinista/b4b6a4cf8f158431b2c5134630c2cbfe buldum :

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

Bu benim için hem virtualenv kullanmıyorken hem de virtualenv içinde çalıştı.


2

Bu benim için çalıştı:

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


1

Bunun bir virtualenv'de çalışmasından mı kaynaklandığından emin değilim, ancak CentOS 7'de bu çözümler benim için çalışmıyordu; ben yeniden yüklerken derlenen nesneler hala önbellek dizininden alınıyordu. Burada diğer çözümleri denedikten sonra aynı sorunla karşılaşıyorsanız, aşağıdakileri deneyin:

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

Aynı burada, CentOS 7'de --no-cahe-dirseçeneği ekleyene kadar çalışmıyordu . Sadece su -@alfonso'nun önerdiği gibi root altında çalışmayı başardığını daha da belirtmek isterim . Yapmak sudo pip3 ...yeterince iyi değildi. Muhtemelen ortam değişkeninin alınması için gerekli.
Nagev

1

Hata:

ImportError: pycurl: libcurl bağlantı zamanı ssl arka ucu (openssl) derleme zamanı ssl arka ucundan farklıdır (yok / diğer)

Bu benim için çalıştı, Mac 10.13, python 3.5, pycurl içe aktarma böyle yükledikten sonra çalıştı

pip3 uninstall pycurl;

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

Bu benim için High Sierra'daki Python 2.7.10'da da çalıştı.
skyler

1

Uzun süre buna takılıp kaldıktan sonra, Apple'ın OS X 10.11 El Capitan'dan beri OpenSSL başlıklarını eklemeyi bıraktığını öğrendim. nasıl düzeltilir?

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

Elbette, işe yaraması için çok zamanımı aldı, söylemeliyim ki oldukça can sıkıcı. İyi eğlenceler!!
Whitebear

1

Amazonlinux'ta da aynı sorun - amazonlinux
tabanlı bir docker görüntüsü oluştururken, python3.7 yüklerken ve pycurl modülünü eklerken bu sorunu yaşadım. Diğer tüm python modülleri, pycurl dışında doğru bir şekilde kuruldu. Bu problemle bağlantılı konu başlıklarında önerilen çözümlerin çoğunu denedikten sonra, nihayet tüm parçaların kurulumu için aşağıdaki komutları kullanarak problemimi çözdüm.
yum -y install python3 python3-devel gcc libcurl-devel aws-cli openssl-static.x86_64
daha sonra psycopg2-binary gibi diğer modülleri, istekleri, sertifikaları kullanarak kurduk:
pip3 install --user --no-cache-dir -r requirements.txt

ve son olarak aşağıdakileri kullanarak pycurl modülünü kurdu:

pip3 install --user --global-option="--with-openssl" --no-cache-dir pycurl
ve buradan openssl global seçeneğini geçerek. Statik kütüphanenin kurulumu openssl-static.x86_64 benim durumumdaki problemi ikinci pip3 komutu tarafından kullanılan global seçeneği kullanarak çözdü.


0

Python 2.7 için

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

Python 3.5 için sonrakini de yükleyin:

sudo apt-get install python3.5-dev

En son pycurl-7.43.0.tar.gz (md5) Kaynağını pypi https://pypi.python.org/pypi/pycurl/7.43.0#downloads adresinden indirin ve sonraki komutu çalıştırın:

python setup.py --with-openssl install

Ayrıca bunu python ortamında da yapabilirsiniz:

(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

Bu sorunla karşılaştım ve Sanket Jagtap'ın cevabı benim için çalıştı. En çok oy alan cevabı denedim ama işe yaramadı.

Openssl eski sürümüm 1.0.1t, bence openssl'yi yeniden yüklemek bu sorunu çözebilir.

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

En son openssl'yi yeniden oluşturdum ve bu cevabı denedim . Şuna bak.

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

Bu benim için çalıştı.

denemek için openssl'mizi yeniden yüklememizi tavsiye ederim ..


0

Aşağıdaki Python3.6 ile benim için çalıştı

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, bunu AWS Elastic Beanstalk aracılığıyla çalıştırırken birçok sorunla karşılaştım ve sonunda şununla çalışmasını sağladım:

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

Son zamanlarda bir Django projesini yükseltirken benzer bir hatayla karşılaştım. Ancak bu sefer ortam değişkenini ayarlamak işe yaramadı. Bu yüzden hem ortam değişkenini ayarlamalı hem export PYCURL_SSL_LIBRARY=opensslde bayrağı geçmeliydim --global-option="with-openssl".

Orijinal cevap bu sayfada yayınlanmıştır


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

pip install pycurl --global-option="--with-openssl"
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.