“Não foi possível executar o curl-config: [Erro 2] Não existe esse arquivo ou diretório” ao instalar o pycurl


185

Estou tentando instalar o pycurl via:

sudo pip install pycurl

O download foi bom, mas quando ele executa o setup.py, recebo o seguinte rastreamento:

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

Alguma idéia de por que isso está acontecendo e como contornar isso


você está usando o Ubuntu?
Padraic Cunningham

Estou no OSX com uma conexão ssh com um terminal linux
user3688241

onde você está tentando instalar o pycurl?
Padraic Cunningham

Respostas:


463

No Debian, eu precisava dos seguintes pacotes para corrigir isso

sudo apt install libcurl4-openssl-dev libssl-dev

4
Que fixa o meu problema no Ubuntu 12.04 (x64) e Python3.4 instalado
Ilia Shakitko

23
Obrigado, eu precisava do libssl-devpacote além do seu. Estranho como se pipdesacopla do gerenciamento de pacotes do sistema, mas nem sequer dá dicas sobre qual pacote pode estar faltando em uma distribuição Linux muito comum.
Mitja 25/05

1
Eu preciso tanto libcurl4-openssl-dev e libssl-dev no Debian 9: sudo apt-get install libcurl4-openssl-dev libssl-dev
david Euler

12
Funciona no Ubuntu 18.04 LTS.
John McGehee

3
@JohnMcGehee, sim, também funciona no Ubuntu 18.04.1 LTS na WSL.
Nephewtom 6/02/19

70

Da mesma forma com o yumgerenciador de pacotes

yum install libcurl-devel

Se você usar dnf, use

dnf install libcurl-devel

No meu caso python-devel estava faltando, bem, então o seguinte resolvido o problema para mim: yum install libcurl-devel python-devel
sokhaty

19

no meu caso, isso corrigiu o problema:

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

como explicado aqui


obrigado pelo pacote python-dev! Eu tive esse erro sem ele: src / pycurl.h: 4: 20: erro fatal: Python.h: Nenhum tal lima ou diretório
Skullone

12

No Alpine linux, você deve fazer:

apk add curl-dev python3-dev libressl-dev

apk add curl-devfoi o suficiente para mim na python2.7-alpineimagem do docker , obrigado!
ItayB

2

Eu encontrei o mesmo problema ao tentar fazer com que o Shinken 2.0.3 iniciasse no Ubuntu. Eventualmente, fiz uma desinstalação completa e reinstalei o Shinken pip -v. Enquanto limpava, mencionava:

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

Instalou isso com apt-get, e todos os corretores foram acionados conforme o esperado :-)


2

Isso resolveu meu problema no Ubuntu 14.04:

apt-get install libcurl4-gnutls-dev



0

No meu caso, eu recebia a mesma mensagem de erro. Eu uso o fedora. Eu resolvi isso fazendo:

sudo dnf install pycurl

Isso instalou tudo que eu precisava para que ele funcionasse.


0

Eu tinha esse problema no Mac e estava relacionado ao opensslpacote ser uma versão mais antiga do que era exigido pycurl.pycurlpode usar outras bibliotecas ssl em vez de openssl conforme meu entendimento. Verifique qual biblioteca ssl você está usando e atualize, pois é muito provável que conserte o problema.

Corrigi isso da seguinte maneira:

  • corrida brew upgrade
  • baixou o mais recente pycurl-x.y.z.tar.gzem http://pycurl.io/
  • extraiu o pacote acima e altere o diretório para ele
  • correu python setup.py --with-openssl installcomo openssl é a biblioteca que eu instalei. Se você é uma biblioteca ssl, é necessário gnutlsou nssentão usar --with-gnutlsou de --with-nssacordo. Você poderá encontrar mais informações de instalação no repositório do github .

0

Além da resposta dos eldos, eu também precisava gccno CentOS 7:

yum install libcurl-devel gcc

0

Esteja ciente de que, se você estiver usando o nodejs, existe (no momento em que escrevo) uma dependência do libssl 1.0. * - portanto, a instalação de uma biblioteca SSL alternativa interromperá a instalação do nodejs.

Uma solução alternativa para instalar uma biblioteca SSL diferente é a publicada nesta resposta aqui: https://stackoverflow.com/a/59927568/13564342 para instalar o libcurl4-gnutls-dev

sudo apt install libcurl4-gnutls-dev
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.