«Не удалось запустить 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

Любая идея, почему это происходит и как обойти это

user3688241
источник
вы используете 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
Дэвид Эйлер
12
Работает на Ubuntu 18.04 LTS.
Джон МакГи
3
@JohnMcGehee, да, работает на Ubuntu 18.04.1 LTS и на WSL.
Племянник
70

Аналогично с yumменеджером пакетов

yum install libcurl-devel

Если вы используете dnf, используйте

dnf install libcurl-devel
EldoS
источник
В моем случае также отсутствовал python-devel, поэтому следующие проблемы решили для меня: yum install libcurl-devel python-devel
sokhaty
19

в моем случае это решило проблему:

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

как объяснено здесь

muimota
источник
спасибо за пакет python-dev! у меня была эта ошибка без нее: src / pycurl.h: 4: 20: фатальная ошибка: Python.h: нет такого файла или каталога
Skullone
12

В Alpine Linux вы должны сделать:

apk add curl-dev python3-dev libressl-dev
Alex
источник
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 установить libcurl4-gnutls-dev

dnaranjo
источник
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/
  • распаковать пакет выше и изменить каталог в него
  • запускается python setup.py --with-openssl installкак openssl - библиотека, которую я установил. Если у вас есть библиотека ssl, то gnutlsили nssтогда придется использовать --with-gnutlsили --with-nssсоответственно. Вы сможете найти больше информации об установке в их репозитории github .
SylvesterAbreuLoreto
источник
0

В дополнение к ответу Eldos мне также нужно было gccв CentOS 7:

yum install libcurl-devel gcc
alelorca
источник
0

Имейте в виду, что если вы используете nodejs, то (на момент написания) существует зависимость от libssl 1.0. * - поэтому установка альтернативной библиотеки SSL нарушит вашу установку nodejs.

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

sudo apt install libcurl4-gnutls-dev
Джеймс Холлингсворт
источник