„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ż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

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

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


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

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


2

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

apt-get install libcurl4-gnutls-dev



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.


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 .

0

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

yum install libcurl-devel gcc

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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.