"Impossibile eseguire curl-config: [Errno 2] Nessun file o directory simile" durante l'installazione di pycurl


185

Sto cercando di installare Pycurl tramite:

sudo pip install pycurl

È stato scaricato correttamente, ma quando esegue setup.py ottengo il seguente 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

Qualche idea sul perché questo accada e su come aggirarlo


stai usando Ubuntu?
Padraic Cunningham,

Sono su OSX con una connessione ssh a un terminale Linux
user3688241

dove stai cercando di installare pycurl?
Padraic Cunningham,

Risposte:


463

Su Debian avevo bisogno dei seguenti pacchetti per risolvere questo problema

sudo apt install libcurl4-openssl-dev libssl-dev

4
Ciò ha risolto il mio problema con Ubuntu 12.04 (x64) e Python3.4 installati
Ilia Shakitko,

23
Grazie, avevo bisogno del libssl-devpacchetto oltre al tuo. Strano come si pipstacchi dalla gestione dei pacchetti di sistema ma non dà nemmeno suggerimenti su quale pacchetto potrebbe essere che mi manca in una distribuzione linux molto comune.
Mitja,

1
Ho bisogno sia di libcurl4-openssl-dev che di libssl-dev su Debian 9: sudo apt-get install libcurl4-openssl-dev libssl-dev
david euler

12
Funziona su Ubuntu 18.04 LTS.
John McGehee,

3
@JohnMcGehee, sì, funziona anche su Ubuntu 18.04.1 LTS su WSL.
nipote il

70

Allo stesso modo con il yumgestore pacchetti

yum install libcurl-devel

Se usi dnf, usa

dnf install libcurl-devel

Nel mio caso mancava anche python-devel, quindi quanto segue ha risolto il problema per me: yum install libcurl-devel python-devel
sokhaty,

19

nel mio caso questo ha risolto il problema:

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

come spiegato qui


grazie per il pacchetto python-dev! ho avuto questo errore senza di esso: src / pycurl.h: 4: 20: errore fatale: Python.h: nessun file o directory
simile

12

In Alpine Linux dovresti fare:

apk add curl-dev python3-dev libressl-dev

apk add curl-devmi è bastato python2.7-alpinenell'immagine docker , grazie!
ItayB,

2

Ho riscontrato lo stesso problema durante il tentativo di avviare Shinken 2.0.3 su Ubuntu. Alla fine ho fatto una disinstallazione completa, quindi ho reinstallato Shinken con pip -v. Mentre ripuliva, menzionava:

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

Installato quello con apt-get, e tutti i broker si sono attivati ​​come previsto :-)


2

Ciò ha risolto il mio problema su Ubuntu 14.04:

apt-get install libcurl4-gnutls-dev



0

Nel mio caso ho continuato a ricevere lo stesso messaggio di errore. Uso fedora. L'ho risolto facendo:

sudo dnf install pycurl

Questo ha installato tutto ciò di cui avevo bisogno per farlo funzionare.


0

Ho avuto questo problema su Mac ed era correlato al fatto che il opensslpacchetto era una versione precedente di ciò che era richiesto pycurl.pycurlposso usare altre librerie ssl piuttosto che openssl secondo la mia comprensione. Verifica quale libreria SSL stai utilizzando e aggiorna poiché è molto probabile che risolva il problema.

Ho risolto questo problema con:

  • in esecuzione brew upgrade
  • scaricato l'ultimo pycurl-x.y.z.tar.gzda http://pycurl.io/
  • estratto il pacchetto sopra e cambia directory in esso
  • eseguito python setup.py --with-openssl installcome openssl è la libreria che ho installato. Se sei libreria ssl è uno gnutlso nssallora dovrà usare --with-gnutlso di --with-nssconseguenza. Sarai in grado di trovare maggiori informazioni sull'installazione nel loro repository github .

0

Oltre alla risposta di eldos, avevo bisogno anche gccdi CentOS 7:

yum install libcurl-devel gcc

0

Tieni presente che se stai usando nodejs c'è (al momento della scrittura) una dipendenza da libssl 1.0. * - quindi l'installazione di una libreria SSL alternativa interromperà l'installazione di nodejs.

Una soluzione alternativa all'installazione di una libreria SSL diversa è quella pubblicata in questa risposta qui: https://stackoverflow.com/a/59927568/13564342 per installare invece libcurl4-gnutls-dev

sudo apt install libcurl4-gnutls-dev
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.