“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

user3688241
fonte
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
Michael Rice
fonte
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
eldos
fonte
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

muimota
fonte
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
Alex
fonte
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 :-)

Chris Woods
fonte
2

Isso resolveu meu problema no Ubuntu 14.04:

apt-get install libcurl4-gnutls-dev

dnaranjo
fonte
0

No OpenSUSE:

zypper in libcurl-devel 
Elliott
fonte
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.

T. Ferriera
fonte
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 .
SylvesterAbreuLoreto
fonte
0

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

yum install libcurl-devel gcc
alelorca
fonte
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
James Hollingsworth
fonte