„Nie można uruchomić curl-config: [Errno 2] Brak takiego pliku lub katalogu” podczas instalacji programu pycurl

185

Próbuję zainstalować pycurl za pomocą:

sudo pip install pycurl

Pobrał się dobrze, ale kiedy uruchamia setup.py, otrzymuję następujący ślad:

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

Każdy pomysł, dlaczego tak się dzieje i jak to obejść

użytkownik3688241
źródło
używasz Ubuntu?
Padraic Cunningham
Jestem na OSX z połączeniem ssh do terminala Linux
3688241
gdzie próbujesz zainstalować pycurl?
Padraic Cunningham

Odpowiedzi:

463

W Debianie potrzebowałem następujących pakietów, aby to naprawić

sudo apt install libcurl4-openssl-dev libssl-dev
Michael Rice
źródło
4
To rozwiązało mój problem na Ubuntu 12.04 (x64) i zainstalowanym Python3.4
Ilia Shakitko,
23
Dzięki, potrzebowałem libssl-devpakietu oprócz twojego. Dziwne, jak pipoddzielone są od zarządzania pakietami systemowymi, ale nawet nie daje wskazówek, który pakiet może być brakujący w bardzo popularnej dystrybucji linux.
Mitja
1
Potrzebuję zarówno libcurl4-openssl-dev, jak i libssl-dev na Debianie 9: sudo apt-get install libcurl4-openssl-dev libssl-dev
David Euler
12
Działa na Ubuntu 18.04 LTS.
John McGehee
3
@JohnMcGehee, tak, działa również na Ubuntu 18.04.1 LTS na WSL.
nephewtom
70

Podobnie z yummenedżerem pakietów

yum install libcurl-devel

Jeśli używasz dnf, użyj

dnf install libcurl-devel
Eldos
źródło
W moim przypadku brakowało również python-devel, więc problem rozwiązał dla mnie: yum install libcurl-devel python-devel
sokhaty
19

w moim przypadku rozwiązało to problem:

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

jak wyjaśniono tutaj

muimota
źródło
dzięki za pakiet python-dev! miałem tego błędu bez niego: src / pycurl.h: 4: 20: błąd krytyczny: Python.h: Brak takiego pliku lub katalogu
Skullone
12

W Alpine Linux należy wykonać:

apk add curl-dev python3-dev libressl-dev
Alex
źródło
apk add curl-devwystarczyło mi w python2.7-alpineobrazie dokera , dzięki!
ItayB
2

Napotkałem ten sam problem podczas próby uruchomienia Shinken 2.0.3 na Ubuntu. W końcu zrobiłem pełną deinstalację, a następnie ponownie zainstalowałem Shinken pip -v. Podczas sprzątania wspomniał:

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

Zainstalowałem to apt-geti wszyscy brokerzy uruchomili się zgodnie z oczekiwaniami :-)

Chris Woods
źródło
2

To rozwiązało mój problem z Ubuntu 14.04:

apt-get install libcurl4-gnutls-dev

dnaranjo
źródło
0

W OpenSUSE:

zypper in libcurl-devel 
Elliott
źródło
0

W moim przypadku ciągle pojawia się ten sam komunikat o błędzie. Używam fedory. Rozwiązałem to, wykonując:

sudo dnf install pycurl

Zainstalowałem wszystko, czego potrzebowałem, aby działało.

T. Ferriera
źródło
0

Miałem ten problem na komputerze Mac i był on związany z tym openssl, że pakiet był starszą wersją tego, czego wymagał pycurl. pycurlmogę używać innych bibliotek ssl zamiast openssl, zgodnie z moim rozumieniem. Sprawdź, której biblioteki ssl używasz i zaktualizuj, ponieważ jest bardzo prawdopodobne, że problem zostanie rozwiązany.

Naprawiłem to przez:

  • bieganie brew upgrade
  • pobrane najnowsze pycurl-x.y.z.tar.gzz http://pycurl.io/
  • rozpakowałem pakiet powyżej i zmień w nim katalog
  • uruchomione python setup.py --with-openssl installjako openssl to biblioteka, którą zainstalowałem. Jeśli jesteś biblioteki ssl jest albo gnutlsczy nsspóźniej będą musiały stosować --with-gnutlslub --with-nssodpowiednio. Będziesz mógł znaleźć więcej informacji o instalacji w ich repozytorium github .
SylvesterAbreuLoreto
źródło
0

Oprócz odpowiedzi eldos potrzebowałem również gccw CentOS 7:

yum install libcurl-devel gcc
alelorca
źródło
0

Pamiętaj, że jeśli używasz nodejs (w momencie pisania) istnieje zależność od libssl 1.0. * - więc zainstalowanie alternatywnej biblioteki SSL przerwie instalację twojego nodejs.

Alternatywnym rozwiązaniem do zainstalowania innej biblioteki SSL jest ta zamieszczona w tej odpowiedzi tutaj: https://stackoverflow.com/a/59927568/13564342 zamiast instalacji libcurl4-gnutls-dev

sudo apt install libcurl4-gnutls-dev
James Hollingsworth
źródło