Neuinstallation der Locke
Ich habe jeden Vorschlag aus dieser Diskussion ausprobiert, aber niemand hat für mich gearbeitet. Als Lösung habe ich Curl und Curlib neu installiert. Danach konnte ich pycurl mit SSL-Unterstützung in der Umgebung installieren.
Am Anfang:
'PycURL / 7.43.0 libcurl / 7.47.0 GnuTLS / 3.4.10 zlib / 1.2.8 libidn / 1.32 librtmp / 2.3'
Teil 1.Re/Installation mit pip
Erstens habe ich pycurl mit pip aus virtualenv entfernt, wie in den vorherigen Antworten vorgeschlagen:
pip uninstall pycurl
export PYCURL_SSL_LIBRARY=openssl
pip install pycurl --global-option="--with-openssl"
Die Idee hier ist, dass das Paket zwischengespeichert wurde und wir es einfach mit der openssl-Option neu installieren.
Ich habe auch versucht, Pycurl mit Pip neu zu kompilieren, indem ich:
pip install pycurl --compile pycurl --no-cache
..aber hatte den gleichen Fehler nach dem Ausführen:
python
import pycurl
pycurl.version
ImportError: pycurl: Das SSL-Backend zur Linkzeit für libcurl ( gnutls ) unterscheidet sich vom SSL-Backend zur Kompilierungszeit ( openssl ).
Teil 2. Installation aus Teer
Nachdem die vorherige Methode nicht funktioniert hat, habe ich beschlossen, Pycurl aus Teer zu installieren mit:
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 wurde global installiert, jedoch nicht innerhalb von virtualenv. Ich habe auch nicht überprüft, ob es mit SSL-Unterstützung installiert wurde oder nicht, aber ich denke, dass immer noch ohne SSL.
Teil 3. Neuinstallation von Curl und Curllib
Schließlich habe ich verstanden, dass Pycurl nicht normal in der Umgebung installiert wird, da Global Curl und Libcurl mit Gnutls kompiliert werden.
Bevor Sie beginnen, überprüfen Sie es mit:
curl-config --configure
Eine der Ausgangsleitungen wird sein
'--without-ssl' '--with-gnutls'
So kompilieren Sie es neu:
Entfernen Sie zuerst die Locke:
sudo apt-get purge curl
Installieren Sie alle Build-Abhängigkeiten, die für das Curl erforderlich sind
sudo apt-get build-dep curl
Holen Sie sich die neueste Version (Stand: 20. Dezember 2016) 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
Die üblichen Schritte zum Erstellen einer App aus dem Quellcode
./configure
./make
sudo make install
Wenn openssl korrekt installiert ist, findet configure es automatisch. Die Ausgabe wird sein:
Curl-Version: 7.51.0
Host-Setup: x86_64-pc-linux- gnu Installationspräfix
: / usr / local
Compiler: gcc
SSL-Unterstützung: aktiviert (OpenSSL) ...
Beheben Sie alle Probleme mit C-Level-Lib-Speicherort-Caches ("Cache für gemeinsam genutzte Bibliotheken").
sudo ldconfig
Versuchen Sie nun, pycurl in der Umgebung neu zu installieren:
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"
Das Ergebnis sollte sein:
python
import pycurl
pycurl.version
'PycURL / 7.43.0 libcurl / 7.51.0 OpenSSL / 1.0.2g zlib / 1.2.8 librtmp / 2.3'