"Не вдалося запустити curl-config: [Errno 2] Немає такого файлу чи каталогу" під час встановлення pycurl


185

Я намагаюся встановити pycurl через:

sudo pip install pycurl

Він завантажився чудово, але коли він запускає setup.py, я отримую наступний трекбек:

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

Будь-яка ідея, чому це відбувається і як її обійти


ви використовуєте Ubuntu?
Падраїк Каннінгем

Я перебуваю на OSX із з'єднанням ssh до терміналу Linux
user3688241

де ви намагаєтесь встановити pycurl?
Падраїк Каннінгем

Відповіді:


463

Для Debian мені потрібні були наступні пакети, щоб виправити це

sudo apt install libcurl4-openssl-dev libssl-dev

4
Це вирішило мою проблему на Ubuntu 12.04 (x64) та встановленому Python3.4
Ілля Шакітько

23
Дякую, мені потрібен був libssl-devпакунок, крім вашого. Дивно, як pipвідокремлюється від управління системним пакетом, але навіть не дає підказів про те, який саме пакет може бути, я пропускаю дуже поширений розподіл Linux.
Мітья

1
Мені потрібні і libcurl4-openssl-dev, і libssl-dev на Debian 9: sudo apt-get install libcurl4-openssl-dev libssl-dev
david euler

12
Працює на Ubuntu 18.04 LTS.
Джон Макгі,

3
@JohnMcGehee, так, також працює Ubuntu 18.04.1 LTS і на WSL.
nephewtom

70

Аналогічно з yumменеджером пакунків

yum install libcurl-devel

Якщо ви користуєтесь dnf, використовуйте

dnf install libcurl-devel

У моєму випадку також не вистачало python-devel, тому наступне вирішило для мене проблему: yum install libcurl-devel python-devel
sokhaty

19

у моєму випадку це вирішило проблему:

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

як пояснено тут


дякую за пакет python-dev! У мене була помилка без неї: src / pycurl.h: 4: 20: фатальна помилка: Python.h: Немає такого файлу чи каталогу
Skullone

12

В альпійському linux вам слід зробити:

apk add curl-dev python3-dev libressl-dev

apk add curl-devмені вистачило в python2.7-alpineобразі докера , дякую!
ItayB

2

Я зіткнувся з тією ж проблемою, намагаючись змусити Shinken 2.0.3 запустити Ubuntu. Врешті-решт я зробив повну видалення, після чого перевстановив Shinken pip -v. Під час прибирання він згадував:

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

Встановлено, що з apt-get, і всі брокери звільнилися, як очікувалося :-)


2

Це вирішило мою проблему на Ubuntu 14.04:

apt-get install libcurl4-gnutls-dev



0

У моєму випадку я продовжував отримувати те саме повідомлення про помилку. Я використовую Fedora. Я вирішив це, зробивши:

sudo dnf install pycurl

Це встановило все, що мені потрібно, щоб воно працювало.


0

У мене виникла ця проблема на Mac, і вона стосувалася того, що opensslпакет був старшою версією того, чого він вимагав pycurl. pycurlможу використовувати інші бібліотеки ssl, а не openssl, як я розумію. Перевірте, яку бібліотеку ssl ви використовуєте, та оновіть, оскільки дуже ймовірно виправити проблему.

Я це зафіксував:

  • біг brew upgrade
  • завантажено останнє pycurl-x.y.z.tar.gzз http://pycurl.io/
  • витягнув пакет вище та змінив каталог у ньому
  • ran python setup.py --with-openssl installяк openssl - це бібліотека, яку я встановив. Якщо ви ssl бібліотека або є, gnutlsабо nssдоведеться використовувати --with-gnutlsабо --with-nssвідповідно. Ви зможете знайти більше інформації про встановлення у їхньому сховищі github .


0

Зауважте, що якщо ви використовуєте nodejs, існує (на момент написання) залежність від libssl 1.0. * - тому встановлення альтернативної бібліотеки SSL порушить вашу установку nodejs.

Альтернативним рішенням для встановлення іншої бібліотеки SSL є те, що розміщено у цій відповіді тут: https://stackoverflow.com/a/59927568/13564342 замість цього встановити libcurl4-gnutls-dev

sudo apt install libcurl4-gnutls-dev
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.