"No se pudo ejecutar curl-config: [Errno 2] No existe tal archivo o directorio" al instalar pycurl


185

Estoy tratando de instalar pycurl a través de:

sudo pip install pycurl

Se descargó bien, pero cuando se ejecuta setup.py obtengo el siguiente rastreo:

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

¿Alguna idea de por qué sucede esto y cómo solucionarlo?


¿Estás usando Ubuntu?
Padraic Cunningham

Estoy en OSX con una conexión SSH a un terminal de Linux
user3688241

¿Dónde intentas instalar pycurl?
Padraic Cunningham

Respuestas:


463

En Debian necesitaba los siguientes paquetes para arreglar esto

sudo apt install libcurl4-openssl-dev libssl-dev

44
Eso solucionó mi problema en Ubuntu 12.04 (x64) y Python3.4 instalado
Ilia Shakitko

23
Gracias, necesitaba el libssl-devpaquete además del tuyo. Es extraño cómo se pipdesacopla de la administración de paquetes del sistema, pero ni siquiera da pistas sobre qué paquete podría ser. Me estoy perdiendo en una distribución de Linux muy común.
Mitja

1
Necesito tanto libcurl4-openssl-dev como libssl-dev en Debian 9: sudo apt-get install libcurl4-openssl-dev libssl-dev
david euler

12
Funciona en Ubuntu 18.04 LTS.
John McGehee

3
@JohnMcGehee, sí, también funciona en Ubuntu 18.04.1 LTS en WSL.
nephewtom

70

Del mismo modo con el yumadministrador de paquetes

yum install libcurl-devel

Si usas dnf, usa

dnf install libcurl-devel

En mi caso también faltaba python-devel, así que lo siguiente resolvió el problema para mí: yum install libcurl-devel python-devel
sokhaty

19

en mi caso esto solucionó el problema:

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

como se explica aquí


gracias por el paquete python-dev! tuve este error sin él: src / pycurl.h: 4: 20: error fatal: Python.h: No existe tal archivo o directorio
Skullone

12

En Alpine Linux debes hacer:

apk add curl-dev python3-dev libressl-dev

apk add curl-devfue suficiente para mí en la python2.7-alpineimagen del acoplador , ¡gracias!
ItayB

2

Encontré el mismo problema al intentar que Shinken 2.0.3 se iniciara en Ubuntu. Finalmente hice una desinstalación completa y luego reinstalé Shinken con pip -v. Mientras limpiaba, mencionó:

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

Instalé eso con apt-get, y todos los corredores dispararon como se esperaba :-)


2

Eso resolvió mi problema en Ubuntu 14.04:

apt-get install libcurl4-gnutls-dev



0

En mi caso, recibí el mismo mensaje de error. Yo uso fedora. Lo resolví haciendo:

sudo dnf install pycurl

Esto instaló todo lo que necesitaba para que funcione.


0

Tuve este problema en Mac y estaba relacionado con que el opensslpaquete era una versión anterior de lo que requería pycurl. pycurlpuede usar otras bibliotecas ssl en lugar de openssl, según tengo entendido. Verifique qué biblioteca SSL está utilizando y actualice, ya que es muy probable que solucione el problema.

Arreglé esto por:

  • corriendo brew upgrade
  • descargado lo último pycurl-x.y.z.tar.gzde http://pycurl.io/
  • extrajo el paquete anterior y cambió el directorio en él
  • funcionó python setup.py --with-openssl installcomo openssl es la biblioteca que he instalado. Si su biblioteca SSL es gnutlso nsstendrá que usar --with-gnutlso en --with-nssconsecuencia. Podrá encontrar más información de instalación en su repositorio de github .

0

Además de la respuesta de eldos que también necesitaba gccen CentOS 7:

yum install libcurl-devel gcc

0

Tenga en cuenta que si está utilizando nodejs, existe (en el momento de la escritura) una dependencia de libssl 1.0. *, Por lo que instalar una biblioteca SSL alternativa interrumpirá su instalación de nodejs.

Una solución alternativa para instalar una biblioteca SSL diferente es la que se publica en esta respuesta aquí: https://stackoverflow.com/a/59927568/13564342 para instalar libcurl4-gnutls-dev

sudo apt install libcurl4-gnutls-dev
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.