Ponowna instalacja curl
Wypróbowałem każdą sugestię z tej dyskusji, ale nikt dla mnie nie pracował. Jako rozwiązanie ponownie zainstalowałem curl i curlib. Potem mogłem zainstalować pycurl z obsługą SSL w środowisku.
Na starcie:
„PycURL / 7.43.0 libcurl / 7.47.0 GnuTLS / 3.4.10 zlib / 1.2.8 libidn / 1.32 librtmp / 2.3”
Część 1.Re/Instalacja za pomocą pip
Po pierwsze, usunąłem pycurl z virtualenv za pomocą pip, tak jak sugerowano poprzednie odpowiedzi:
pip uninstall pycurl
export PYCURL_SSL_LIBRARY=openssl
pip install pycurl --global-option="--with-openssl"
Pomysł jest taki, że pakiet został zbuforowany i po prostu ponownie zainstalujemy go z opcją openssl.
Próbowałem również przekompilować pycurl z pip przy użyciu:
pip install pycurl --compile pycurl --no-cache
..ale miał ten sam błąd po uruchomieniu:
python
import pycurl
pycurl.version
ImportError: pycurl: libcurl zaplecze ssl czasu łącza ( gnutls ) różni się od zaplecza ssl czasu kompilacji ( openssl )
Część 2. Instalacja ze smoły
Po tym, jak poprzednia metoda nie zadziałała, zdecydowałem się zainstalować pycurl z tar z:
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
Zainstalował pycurl globalnie, ale nie w ramach virtualenv. Nie sprawdziłem też, czy został zainstalowany z obsługą SSL, czy nie, ale myślę, że nadal bez SSL.
Część 3. Ponowna instalacja curl i curllib
W końcu zrozumiałem, że pycurl nie instaluje się normalnie w środowisku, ponieważ global curl i libcurl są kompilowane za pomocą gnutls.
Przed rozpoczęciem sprawdź to za pomocą:
curl-config --configure
Jedna z linii wyjściowych będzie
„--bez-ssl” „--z-gnutls”
Aby go ponownie skompilować:
Najpierw usuń zwijanie:
sudo apt-get purge curl
Zainstaluj wszystkie zależności kompilacji potrzebne do curl
sudo apt-get build-dep curl
Pobierz najnowsze (stan na 20 grudnia 2016 r.) Libcurl
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
Typowe kroki tworzenia aplikacji ze źródła
./configure
./make
sudo make install
Jeśli openssl jest poprawnie zainstalowany, configure znajdzie go automatycznie. Wynik będzie:
curl wersja: 7.51.0
Konfiguracja hosta: x86_64-pc-linux-gnu
Przedrostek instalacyjny: / usr / local
Kompilator: gcc Obsługa
SSL: włączona (OpenSSL) ...
Rozwiązywanie wszelkich problemów z pamięcią podręczną lokalizacji bibliotek na poziomie C („pamięć podręczna bibliotek współdzielonych”)
sudo ldconfig
Teraz spróbuj ponownie zainstalować pycurl w środowisku:
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"
Wynik powinien być:
python
import pycurl
pycurl.version
'PycURL / 7.43.0 libcurl / 7.51.0 OpenSSL / 1.0.2g zlib / 1.2.8 librtmp / 2.3'