Pemasangan ulang curl
Saya mencoba setiap saran dari diskusi ini tetapi tidak ada yang berhasil untuk saya. Sebagai solusi, saya telah menginstal ulang curl dan curlib. Setelah itu saya dapat menginstal pycurl dengan dukungan ssl di dalam lingkungan.
Di mulai:
'PycURL / 7.43.0 libcurl / 7.47.0 GnuTLS / 3.4.10 zlib / 1.2.8 libidn / 1.32 librtmp / 2.3'
Bagian 1. Re/Installation dengan pip
Pertama saya telah menghapus pycurl dari virtualenv menggunakan pip seperti yang disarankan jawaban sebelumnya:
pip uninstall pycurl
export PYCURL_SSL_LIBRARY=openssl
pip install pycurl --global-option="--with-openssl"
Idenya di sini adalah bahwa paket telah di-cache dan kami hanya menginstal ulang dengan opsi openssl.
Saya juga mencoba mengkompilasi ulang pycurl dengan pip menggunakan:
pip install pycurl --compile pycurl --no-cache
..tetapi mengalami kesalahan yang sama setelah menjalankan:
python
import pycurl
pycurl.version
ImportError: pycurl: libcurl link-time ssl backend ( gnutls ) berbeda dari waktu kompilasi ssl backend ( openssl )
Bagian 2. Instalasi dari tar
Setelah metode sebelumnya tidak berhasil, saya telah memutuskan untuk menginstal pycurl dari tar dengan:
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
Ini telah menginstal pycurl secara global tetapi tidak dalam virtualenv. Saya juga tidak memeriksa apakah itu diinstal dengan dukungan SSL atau tidak tetapi berpikir itu masih tanpa ssl.
Bagian 3. Pemasangan ulang curl dan curllib
Akhirnya saya mengerti bahwa pycurl tidak menginstal secara normal ke dalam lingkungan karena global curl dan libcurl dikompilasi dengan gnutls.
Sebelum memulai, periksa dengan:
curl-config --configure
Salah satu jalur keluaran akan menjadi
'--tanpa-ssl' '--dengan-gnutls'
Untuk mengkompilasi ulang:
Pertama-tama hapus ikal:
sudo apt-get purge curl
Instal semua dependensi build yang diperlukan untuk curl
sudo apt-get build-dep curl
Dapatkan libcurl terbaru (per 20 Des 2016)
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
Langkah-langkah biasa untuk membuat aplikasi dari sumber
./configure
./make
sudo make install
Jika openssl diinstal dengan benar, maka konfigurasi akan menemukannya secara otomatis. Outputnya adalah:
versi curl: 7.51.0
Konfigurasi host: x86_64-pc-linux-gnu
Awalan instalasi: / usr / local
Penyusun: gcc
Dukungan SSL: diaktifkan (OpenSSL) ...
Selesaikan masalah apa pun dari cache lokasi lib tingkat C ("cache perpustakaan bersama")
sudo ldconfig
Sekarang coba instal ulang pycurl dalam lingkungan:
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"
Hasilnya harus:
python
import pycurl
pycurl.version
'PycURL / 7.43.0 libcurl / 7.51.0 OpenSSL / 1.0.2g zlib / 1.2.8 librtmp / 2.3'