"Impossible d'exécuter curl-config: [Errno 2] Aucun fichier ou répertoire de ce type" lors de l'installation de pycurl

185

J'essaye d'installer pycurl via:

sudo pip install pycurl

Il s'est bien téléchargé, mais lorsqu'il exécute setup.py, j'obtiens le suivi suivant:

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

Toute idée de pourquoi cela se produit et comment le contourner

user3688241
la source
utilisez-vous Ubuntu?
Padraic Cunningham
Je suis sur OSX avec une connexion ssh à un terminal linux
user3688241
où essayez-vous d'installer pycurl?
Padraic Cunningham

Réponses:

463

Sur Debian, j'avais besoin des packages suivants pour résoudre ce problème

sudo apt install libcurl4-openssl-dev libssl-dev
Michael Rice
la source
4
Cela a résolu mon problème sur Ubuntu 12.04 (x64) et Python3.4 installé
Ilia Shakitko
23
Merci, j'avais besoin du libssl-devpackage en plus du vôtre. C'est étrange à quel point il se pipsépare de la gestion des paquets système mais ne donne même pas d'indications sur le paquet qu'il pourrait me manquer sur une distribution Linux très courante.
Mitja
1
J'ai besoin de libcurl4-openssl-dev et libssl-dev sur Debian 9: sudo apt-get install libcurl4-openssl-dev libssl-dev
david euler
12
Fonctionne sur Ubuntu 18.04 LTS.
John McGehee
3
@JohnMcGehee, oui, fonctionne aussi sur Ubuntu 18.04.1 LTS sur WSL.
nephewtom
70

De même avec le yumgestionnaire de paquets

yum install libcurl-devel

Si vous utilisez dnf, utilisez

dnf install libcurl-devel
eldos
la source
Dans mon cas, python-devel manquait également, donc ce qui suit a résolu le problème pour moi: yum install libcurl-devel python-devel
sokhaty
19

dans mon cas, cela a résolu le problème:

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

comme expliqué ici

Muimota
la source
merci pour le paquet python-dev! J'ai eu cette erreur sans elle: src / pycurl.h: 4: 20: erreur fatale: Python.h: Aucun fichier ou répertoire de ce type
Skullone
12

Dans Alpine Linux, vous devez faire:

apk add curl-dev python3-dev libressl-dev
Alex
la source
apk add curl-devétait assez pour moi en python2.7-alpineimage de docker , merci!
ItayB
2

J'ai rencontré le même problème en essayant de faire démarrer Shinken 2.0.3 sur Ubuntu. Finalement, j'ai fait une désinstallation complète puis réinstallé Shinken avec pip -v. En nettoyant, il a mentionné:

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

Installé avec apt-get, et tous les courtiers se sont déclenchés comme prévu :-)

Chris Woods
la source
2

Cela a résolu mon problème sur Ubuntu 14.04:

apt-get installer libcurl4-gnutls-dev

dnaranjo
la source
0

Sur OpenSUSE:

zypper in libcurl-devel 
Elliott
la source
0

Dans mon cas, j'ai continué à recevoir le même message d'erreur. J'utilise fedora. Je l'ai résolu en faisant:

sudo dnf install pycurl

Cela a installé tout ce dont j'avais besoin pour que cela fonctionne.

T. Ferriera
la source
0

J'ai eu ce problème sur Mac et il était lié au fait que le opensslpackage était une version plus ancienne de ce dont il était requis pycurl.pycurlpeut utiliser d'autres bibliothèques ssl plutôt que openssl selon ma compréhension de celui-ci. Vérifiez la bibliothèque SSL que vous utilisez et mettez à jour car elle est très susceptible de résoudre le problème.

J'ai corrigé cela par:

  • fonctionnement brew upgrade
  • téléchargé la dernière pycurl-x.y.z.tar.gzsur http://pycurl.io/
  • extrait le paquet ci-dessus et change de répertoire dedans
  • couru python setup.py --with-openssl installcomme openssl est la bibliothèque que j'ai installée. Si vous êtes bibliothèque ssl est soit gnutlsou nssalors devra utiliser --with-gnutlsou en --with-nssconséquence. Vous pourrez trouver plus d' informations sur l'installation dans leur référentiel github .
SylvesterAbreuLoreto
la source
0

En plus de la réponse d' eldos dont j'avais également besoin gccdans CentOS 7:

yum install libcurl-devel gcc
Alelorca
la source
0

Sachez que si vous utilisez nodejs, il y a (au moment de la rédaction) une dépendance sur libssl 1.0. * - donc l'installation d'une bibliothèque SSL alternative interrompra votre installation nodejs.

Une solution alternative à l'installation d'une bibliothèque SSL différente est celle publiée dans cette réponse ici: https://stackoverflow.com/a/59927568/13564342 pour installer à la place libcurl4-gnutls-dev

sudo apt install libcurl4-gnutls-dev
James Hollingsworth
la source