"Curl-config konnte nicht ausgeführt werden: [Errno 2] Keine solche Datei oder kein solches Verzeichnis" bei der Installation von pycurl

185

Ich versuche Pycurl über Folgendes zu installieren:

sudo pip install pycurl

Es wurde gut heruntergeladen, aber wenn es setup.py ausführt, erhalte ich den folgenden Traceback:

Downloading/unpacking pycurl
  Running setup.py egg_info for package pycurl
    Traceback (most recent call last):
      File "<string>", line 16, in <module>
      File "/tmp/pip-build-root/pycurl/setup.py", line 563, in <module>
        ext = get_extension()
      File "/tmp/pip-build-root/pycurl/setup.py", line 368, in get_extension
        ext_config = ExtensionConfiguration()
      File "/tmp/pip-build-root/pycurl/setup.py", line 65, in __init__
        self.configure()
      File "/tmp/pip-build-root/pycurl/setup.py", line 100, in configure_unix
        raise ConfigurationError(msg)
    __main__.ConfigurationError: Could not run curl-config: [Errno 2] No such file or directory
    Complete output from command python setup.py egg_info:
    Traceback (most recent call last):

  File "<string>", line 16, in <module>

  File "/tmp/pip-build-root/pycurl/setup.py", line 563, in <module>

    ext = get_extension()

  File "/tmp/pip-build-root/pycurl/setup.py", line 368, in get_extension

    ext_config = ExtensionConfiguration()

  File "/tmp/pip-build-root/pycurl/setup.py", line 65, in __init__

    self.configure()

  File "/tmp/pip-build-root/pycurl/setup.py", line 100, in configure_unix

    raise ConfigurationError(msg)

__main__.ConfigurationError: Could not run curl-config: [Errno 2] No such file or directory

Jede Idee, warum dies geschieht und wie man es umgeht

user3688241
quelle
Verwenden Sie Ubuntu?
Padraic Cunningham
Ich bin unter OSX mit einer SSH-Verbindung zu einem Linux-Terminal
user3688241
Wo versuchst du Pycurl zu installieren?
Padraic Cunningham

Antworten:

461

Unter Debian brauchte ich die folgenden Pakete, um dies zu beheben

sudo apt install libcurl4-openssl-dev libssl-dev
Michael Rice
quelle
4
Das hat mein Problem auf Ubuntu 12.04 (x64) und Python3.4 behoben
Ilia Shakitko
23
Danke, ich brauchte das libssl-devPaket zusätzlich zu deinem. Seltsam, wie pipentkoppelt man sich von der Systempaketverwaltung, gibt aber nicht einmal Hinweise darauf, um welches Paket es sich handeln könnte. Ich vermisse es in einer sehr verbreiteten Linux-Distribution.
Mitja
1
Ich brauche sowohl libcurl4-openssl-dev als auch libssl-dev unter Debian 9: sudo apt-get install libcurl4-openssl-dev libssl-dev
david
12
Funktioniert unter Ubuntu 18.04 LTS.
John McGehee
3
@JohnMcGehee, yep, funktioniert auch unter Ubuntu 18.04.1 LTS unter WSL.
Neffe
70

Ähnliches gilt für den yumPaketmanager

yum install libcurl-devel

Wenn Sie verwenden dnf, verwenden Sie

dnf install libcurl-devel
Eldos
quelle
In meinem Fall fehlte auch Python-Devel, daher löste das Folgende das Problem für mich: yum install libcurl-devel python-devel
sokhaty
19

In meinem Fall wurde das Problem dadurch behoben:

sudo apt-get install libssl-dev libcurl4-openssl-dev python-dev

wie hier erklärt

Muimota
quelle
danke für das python-dev paket! Ich hatte diesen Fehler ohne: src / pycurl.h: 4: 20: schwerwiegender Fehler: Python.h: Keine solche Datei oder Verzeichnis
Skullone
12

In Alpine Linux sollten Sie Folgendes tun:

apk add curl-dev python3-dev libressl-dev
Alex
quelle
apk add curl-devwar genug für mich im Docker- python2.7-alpineBild, danke!
ItayB
2

Ich habe das gleiche Problem festgestellt, als ich versucht habe, Shinken 2.0.3 unter Ubuntu zum Starten zu bringen. Schließlich habe ich eine vollständige Deinstallation durchgeführt und dann Shinken mit neu installiert pip -v. Als es aufgeräumt wurde, erwähnte es:

Warning: missing python-pycurl lib, you MUST install it before launch the shinken daemons

Installierte das mit apt-getund alle Broker feuerten wie erwartet :-)

Chris Woods
quelle
2

Das hat mein Problem unter Ubuntu 14.04 gelöst:

apt-get install libcurl4-gnutls-dev

dnaranjo
quelle
0

Auf OpenSUSE:

zypper in libcurl-devel 
Elliott
quelle
0

In meinem Fall bekam ich immer die gleiche Fehlermeldung. Ich benutze Fedora. Ich habe es gelöst, indem ich:

sudo dnf install pycurl

Dies installierte alles, was ich brauchte, damit es funktionierte.

T. Ferriera
quelle
0

Ich hatte dieses Problem auf dem Mac und es hing damit zusammen, dass das opensslPaket eine ältere Version dessen war, was es benötigte pycurl. pycurlkann nach meinem Verständnis andere SSL-Bibliotheken anstelle von OpenSSL verwenden. Überprüfen Sie, welche SSL-Bibliothek Sie verwenden, und aktualisieren Sie sie, da dies das Problem sehr wahrscheinlich beheben wird.

Ich habe das behoben durch:

  • Laufen brew upgrade
  • hat das Neueste pycurl-x.y.z.tar.gzvon http://pycurl.io/ heruntergeladen
  • extrahierte das obige Paket und wechselte das Verzeichnis hinein
  • lief python setup.py --with-openssl installals openssl ist die Bibliothek, die ich installiert habe. Wenn Sie SSL-Bibliothek ist, muss entweder gnutlsoder nssdann --with-gnutlsoder --with-nssentsprechend verwendet werden. Weitere Installationsinformationen finden Sie im Github-Repository .
SylvesterAbreuLoreto
quelle
0

Neben der Antwort von eldos brauchte ich auch gccin CentOS 7:

yum install libcurl-devel gcc
Alelorca
quelle
0

Beachten Sie, dass bei Verwendung von nodejs (zum Zeitpunkt des Schreibens) eine Abhängigkeit von libssl 1.0 besteht. * - Wenn Sie also eine alternative SSL-Bibliothek installieren, wird die Installation von nodejs unterbrochen.

Eine alternative Lösung zur Installation einer anderen SSL-Bibliothek ist die in dieser Antwort hier angegebene: https://stackoverflow.com/a/59927568/13564342, um stattdessen libcurl4-gnutls-dev zu installieren

sudo apt install libcurl4-gnutls-dev
James Hollingsworth
quelle