安装pycurl时“无法运行curl-config:[Errno 2]没有这样的文件或目录”

Posted

技术标签:

【中文标题】安装pycurl时“无法运行curl-config:[Errno 2]没有这样的文件或目录”【英文标题】:"Could not run curl-config: [Errno 2] No such file or directory" when installing pycurl 【发布时间】:2014-07-19 05:31:06 【问题描述】:

我正在尝试通过以下方式安装 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 终端 你想在哪里安装 pycurl? 【参考方案1】:

在 Debian 上,我需要以下软件包来解决此问题

sudo apt install libcurl4-openssl-dev libssl-dev

【讨论】:

这解决了我在 Ubuntu 12.04 (x64) 和 Python3.4 上安装的问题 谢谢,除了你的,我还需要libssl-dev 包。奇怪pip 如何与系统包管理分离,但甚至没有提示我在一个非常常见的 linux 发行版上可能缺少哪个包。 我在 Debian 9 上同时需要 libcurl4-openssl-dev 和 libssl-dev: sudo apt-get install libcurl4-openssl-dev libssl-dev 适用于 Ubuntu 18.04 LTS。 @JohnMcGehee,是的,也适用于 WSL 上的 Ubuntu 18.04.1 LTS。【参考方案2】:

yum 包管理器类似

yum install libcurl-devel

如果您使用dnf,请使用

dnf install libcurl-devel

【讨论】:

在我的情况下 python-devel 也丢失了,所以以下解决了我的问题:yum install libcurl-devel python-devel【参考方案3】:

在我的情况下,这解决了问题:

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

如解释here

【讨论】:

感谢 python-dev 软件包!没有它我有这个错误:src/pycurl.h:4:20:致命错误:Python.h:没有这样的文件或目录【参考方案4】:

在 Alpine linux 中你应该这样做:

apk add curl-dev python3-dev libressl-dev

【讨论】:

apk add curl-dev 在 docker python2.7-alpine 图像中对我来说已经足够了,谢谢!【参考方案5】:

@Michael Rice 提供的相同解决方案也适用于 Ubuntu 18.04

Ubuntu 18.04 LTS

sudo apt install libcurl4-openssl-dev libssl-dev

Al 认为在 Michael 的回答中提到了它,但认为突出显示是为了便于使用。

【讨论】:

【参考方案6】:

我在尝试让 Shinken 2.0.3 在 Ubuntu 上启动时遇到了同样的问题。最后我做了一个完全卸载然后用pip -v重新安装了Shinken。当它清理时,它提到:

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

使用apt-get 安装它,所有代理都按预期启动:-)

【讨论】:

【参考方案7】:

这解决了我在 Ubuntu 14.04 上的问题:

apt-get install libcurl4-gnutls-dev

【讨论】:

【参考方案8】:

在 OpenSUSE 上:

zypper in libcurl-devel 

【讨论】:

zypper in libcurl-devel libopenssl-devel【参考方案9】:

就我而言,我不断收到相同的错误消息。我用软呢帽。 我通过这样做解决了它:

sudo dnf install pycurl

这安装了我工作所需的一切。

【讨论】:

【参考方案10】:

我在 Mac 上遇到了这个问题,它与 openssl 软件包是 pycurl 所需的旧版本有关。 pycurl 根据我的理解可以使用其他 ssl 库而不是 openssl。验证您正在使用的 ssl 库并进行更新,因为它很可能会解决问题。

我通过以下方式解决了这个问题:

正在运行brew upgrade 从下载最新的pycurl-x.y.z.tar.gz http://pycurl.io/ 提取上面的包并将目录更改为它 run python setup.py --with-openssl install as openssl 是我安装的库。如果您的 ssl 库是 gnutlsnss,则必须相应地使用 --with-gnutls--with-nss。您将能够找到更多installation info in their github repository。

【讨论】:

【参考方案11】:

除了eldos的答案,我在CentOS 7中还需要gcc

yum install libcurl-devel gcc

【讨论】:

在 CentOS 8 上对我来说是“yum install openssl-devel.x86_64 libcurl-devel.x86_64”【参考方案12】:

请注意,如果您使用的是 nodejs,则(在撰写本文时)依赖于 libssl 1.0.* - 因此安装替代 SSL 库会破坏您的 nodejs 安装。

安装不同 SSL 库的替代解决方案是在此答案中发布:https://***.com/a/59927568/13564342 改为安装 libcurl4-gnutls-dev

sudo apt install libcurl4-gnutls-dev

【讨论】:

以上是关于安装pycurl时“无法运行curl-config:[Errno 2]没有这样的文件或目录”的主要内容,如果未能解决你的问题,请参考以下文章

YUM安装提示PYCURL ERROR 6 - "Couldn't错误的解决办法

ubuntu14.04安装pycurl

转!Python安装pycurl失败,及解决办

Python pycurl模块 学习

PyCurl 安装错误, ERROR: Command errored out with exit status 10: command: '...

python 3.7.2 安装 pycurl 遇到的坑