SSL-Backend-Fehler bei Verwendung von OpenSSL
Ich versuche zu installieren, pycurl in einem mit virtualenv und pip bekam ich diese Fehlermeldung
ImportError: pycurl: libcurl link-time ssl backend (openssl) is different from compile-time ssl backend (none/other)
Ich lese einige Dokumente, die sagen, dass "um dies Zu beheben, müssen Sie sagen setup.py welche SSL-backend verwendet wird" (Quelle) obwohl ich bin mir nicht sicher, wie dies zu tun, da ich pycurl installiert mit pip.
Wie kann ich SSL im backend bei der Installation von pycurl mit pip?
Dank
InformationsquelleAutor der Frage helloworld2013 | 2014-01-13
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nach dem Lesen Ihrer INSTALLATIONS-Datei, ich war in der Lage mein problem zu lösen, indem eine Umgebungsvariable und hat eine Neuinstallation
entfernen Sie vorhandene
pycurl
installationpip uninstall pycurl
export-variable mit Ihrem link-Zeit ssl-backend (das ist openssl oben)
export PYCURL_SSL_LIBRARY=openssl
dann re-installieren
pycurl
pip install pycurl
Könnte es andere Lösung gibt, aber diese funktioniert perfekt für mich, auf eine
virtualenv
undpip
installation.InformationsquelleAutor der Antwort helloworld2013
helloworld2013 s Antwort ist richtig, aber der Schlüssel ist das matching der SSL-Bibliothek, die pycurl erwartet. Der Fehler wird so etwas wie:
pycurl: libcurl-link-Zeit ssl-backend (<Bibliothek>) unterscheidet sich von compile-time-ssl-backend (<Bibliothek> oder "/keine /andere")
Um es zu beheben, müssen Sie die Bibliothek verwenden pycurl erwartet. In meinem Fall, mein Fehler war "pycurl: libcurl-link-Zeit ssl-backend (nss) unterscheidet sich von compile-time-ssl-backend (openssl)", also mein fix war:
InformationsquelleAutor der Antwort DrStrangepork
Mit OSX 10.13, ein Gebräu-openSSL installiert, und virtualenv, ich war erfolgreich mit:
InformationsquelleAutor der Antwort Michael Wilson
Mit pip 7.1 können Sie die folgende in Ihren Anforderungen file:
Einfach ersetzen nss mit den entsprechenden ssl-backend-Bibliothek.
InformationsquelleAutor der Antwort maharg101
Dieser arbeitete für mich:
Keines dieser arbeitete für mich (Hinweis: der Unterschied ist einfach easy_install vs pip):
InformationsquelleAutor der Antwort JoelBondurant
Die Methode zum beheben des pycurl nach Mac OS High Sierra-update:
Installieren Sie die curl-Bibliotheken OpenSSL statt SecureTransport
Installieren pycurl mit der richtigen build-Umgebung und die Pfade
InformationsquelleAutor der Antwort pallly
Ich hatte dieses problem seit Tagen. Schließlich mit Hilfe der anderen Antworten hier (vor allem Alexander Tyapkov) ich habe es funktioniert für AWS Elastic Beanstalk.
Manuelle Installation (Verbindung mit SSH):
WICHTIG: Bitte beachten Sie, dass Sie haben zu stellen Sie sicher, dass Sie die aktuelle version von Python-PIP, andernfalls werden Sie kompilieren es für Python 2.x und mit v3.x.
Auto-install in Elastic Beanstalk:
Hatte ich dieses problem nicht, da ich versucht habe zu konfigurieren, Sellerie 4 mit Django 1.10 in Elastic Beanstalk. Wenn das Ihr Fall ist, Ich schrieb eine volle blog-post darüber.
InformationsquelleAutor der Antwort Diego Jancic
Bin ich auf CentOS 7. Ich habe versucht, alle der oben genannten und konnte nicht alles bekommen, um zu arbeiten. Es stellt sich heraus, ich brauchte, um diese als root-Benutzer. Also, wenn Sie Probleme haben, versuchen Sie eine der oben genannten Lösungen als root-Benutzer. Als ein Beispiel, hier ist was für mich gearbeitet:
Natürlich, alle üblichen Haftungsausschlüssen, die zum ausführen als root-Benutzer gelten.
Anmerkung: [nss|openssl|ssl|gnutls] im code oben bedeutet, sich für eine zu entscheiden, und nicht über die eckigen Klammern oder in den Rohren. Die person, die gefragt, die ursprüngliche Frage gewählt hätte, openssl. In meinem speziellen Fall, ich entschied mich für nss. Deine Fehlermeldung sollte dir sagen, welche Wahl zu stellen.
InformationsquelleAutor der Antwort alfonso
Können Sie die herunterladen die tar.gz Datei von hier. Dann entpacken Sie es in einen Ordner. Finden Sie eine setup.py die Datei gibt es. Führen Sie den Befehl, die von der Website erwähnt. Zum Beispiel:
FYI: ich habe versucht zu installieren pycurl an meinem Fenster, aber ich konnte nicht. Aber habe es auf meinem linux.
InformationsquelleAutor der Antwort Sabuj Hassan
Ich bin mit dieser auf OS X und einige der oben genannten Lösungen nicht funktioniert. Ähnlich Edward Newell ' s Kommentar die
PYCURL_SSL_LIBRARY
variable zu haben schien, wurde komplett ignoriert.Die weitere Lektüre des PycURL installation doc ergab Folgendes:
Daher, ich musste mich zwingen, es zu kompilieren mit:
pip install --compile pycurl
Dass die arbeiten an einer Reihe von Fällen. Allerdings habe ich ein paar Systeme, die weiterhin zu ignorieren, die variable so ähnlich maharg101 AntwortGriff ich auf die Installation Optionen, die durch pip kann festgelegt werden, wie diese:
pip install pycurl --global-option="--with-[ssl|gnutls|nss]"
wo Sie wählen Sie eine der drei Optionen in den eckigen Klammern. Beachten Sie, dass die option verfügbar ist
ssl
und nichtopenssl
. Wenn Sie angeben--with-openssl
erhalten Sie eine Fehlermeldung. Beachten Sie auch, dass, wenn Sie waren Herumspielen mit derPYCURL_SSL_LIBRARY
variabel und wechseln Sie zu funky Werte, um zu sehen, was passieren würde, dieser Letzte Befehl wird auf jeden Fall fangen und wirft einen Fehler wenn der Wert gesetzt ist, aber nicht gültig.InformationsquelleAutor der Antwort Gunga
Neuinstallation von curl
Ich habe versucht, jeden Vorschlag aus dieser Diskussion aber niemand für mich gearbeitet. Als Lösung habe ich neu installiert curl und curlib. Danach war ich in der Lage zu installieren pycurl mit ssl-Unterstützung im inneren Umwelt.
Am start:
Teil 1.Re/Installation mit pip
Erstens habe ich entfernt pycurl von virtualenv verwenden Sie pip so wurde vorgeschlagen, bisherige Antworten:
Die Idee hier ist, dass das Paket zwischengespeichert wurde und wir nur reintstall es mit openssl option.
Ich habe auch versucht neu zu kompilieren pycurl mit pip verwenden:
..aber hatte den gleichen Fehler nach der Ausführung:
Teil 2. Installation von tar
Nachdem die Vorherige Methode nicht funktioniert hat, habe ich decidede zu installieren pycurl von Teer mit:
Es installiert hat pycurl Global, aber nicht in virtualenv. Ich auch nicht überprüfen, ob es installiert wurde, mit SSL-Unterstützung oder nicht, aber denke, dass immer noch ohne ssl.
Teil 3. Neuinstallation von curl und curllib
Endlich habe ich verstanden, dass pycurl nicht installiert, die normalerweise in die Umwelt, weil die Globale curl und libcurl wurden mit gnutls.
Bevor Sie beginnen überprüfen Sie es mit:
Einer der Ausgangsleitungen werden
Neu zu kompilieren es:
Erst zu entfernen curl:
Installieren Sie alle build-Abhängigkeiten benötigt curl
Holen Sie sich aktuelle (Stand Dez 20, 2016) libcurl
Den üblichen Schritten für das erstellen einer app aus einer Quelle
Wenn openssl installiert, dann richtig konfigurieren, finden Sie automatisch. Der Ausgang wird sein:
Beheben Sie alle Probleme von C-level-lib Lage caches ("shared-library-cache")
Nun versuchen zu installieren pycurl innerhalb der Umgebung:
Sollte das Ergebnis sein:
InformationsquelleAutor der Antwort Alexander Tyapkov
Nicht sicher, ob dies ist, weil der Betrieb in einer virtualenv, aber auf CentOS 7 diese Lösungen waren nicht für mich arbeiten; das kompilierte Objekte waren noch gepackt von der cache-dir, wenn ich war in der Neuinstallation. Wenn Sie laufen in das gleiche problem, auch nach versuchen mit anderen Lösungen hier, versuchen Sie Folgendes:
InformationsquelleAutor der Antwort Robert Kelly
Fehler:
Dieser arbeitete für mich, Mac 10.13, python 3.5, pycurl import funktionierte nach der Installation, wie dies
InformationsquelleAutor der Antwort vairav
Nach stecken, die auf diese für eine lange Zeit, fand ich heraus, dass apple gestoppt, einschließlich OpenSSL-Header, da OS X 10.11 El Capitan.
wie zu beheben?
InformationsquelleAutor der Antwort Whitebear
Für python 2.7
Python 3.5 installiert auch die nächsten:
Laden Sie die neueste pycurl-7.43.0.tar.gz (md5 -) Quelle von pypi https://pypi.python.org/pypi/pycurl/7.43.0#downloads
und führen Sie folgenden Befehl aus:
Auch Sie können es tun, in die python-Umgebung:
InformationsquelleAutor der Antwort Andrew Nodermann
InformationsquelleAutor der Antwort Sanket Jagtap
Ich auf dieses problem und Sanket Jagtap Antwort für mich gearbeitet. Ich habe versucht, die Antwort mit den meisten Stimmen beantworten, aber es hat nicht funktioniert.
Meine alte openssl-version 1.0.1 t, ich denke, die Neuinstallation von openssl kann dieses problem lösen.
Ich baute die neueste openssl und versuchte diese Antwort. Check this out.
Dieser arbeitete für mich.
empfehle ich, sollten wir installieren unsere openssl für die try..
InformationsquelleAutor der Antwort F.allen
Folgenden arbeitete für mich mit Python ist3.6
MacOS High-Sierra
CentOS 7
InformationsquelleAutor der Antwort Samuel
Dieser link fasst den Grund, warum der Fehler auftreten, und bietet eine klare Anleitung, um das problem zu beheben.
https://cscheng.info/2018/01/26/installing-pycurl-on-macos-high-sierra.html
Für mich das problem aufgetreten, wenn ich ein Upgrade auf High-Sierra von El
Captain.
InformationsquelleAutor der Antwort hyukkyulee
InformationsquelleAutor der Antwort Evgenii