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'