"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


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

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

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


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

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 :-)


2

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

apt-get installer libcurl4-gnutls-dev



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.


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 .

0

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

yum install libcurl-devel gcc

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
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.