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

我试图安装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

你知道为什么会发生这种事,以及如何解决吗

152252 次浏览

在Debian上,我需要以下包来解决这个问题

sudo apt install libcurl4-openssl-dev libssl-dev

我在Ubuntu上启动Shinken 2.0.3时也遇到了同样的问题。最终,我做了一个完全卸载,然后重新安装了Shinken与pip -v。在清理过程中,它提到:

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

apt-get安装它,所有的代理都像预期的那样启动了:-)

yum包管理器类似

yum install libcurl-devel

如果你使用dnf,使用

dnf install libcurl-devel

OpenSUSE:

zypper in libcurl-devel

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

安装libcurl4-gnutls-dev

在我的案例中,这解决了问题:

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

as解释在这里

在我的情况下,我一直得到相同的错误消息。我用软呢帽。 我解决它的方法是:

sudo dnf install pycurl

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

在Alpine linux中,你应该做:

apk add curl-dev python3-dev libressl-dev

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

我通过:

  • 运行brew upgrade
  • 下载了最新的pycurl-x.y.z.tar.gz from 李http://pycurl.io/ < / >
  • 提取上面的包,并将目录更改到其中
  • 运行python setup.py --with-openssl install作为openssl是我已经安装的库。如果你的ssl库是gnutlsnss,那么必须相应地使用--with-gnutls--with-nss。你将能够找到更多安装信息在他们的github存储库

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

yum install libcurl-devel gcc

请注意,如果您正在使用nodejs,那么(在撰写本文时)对libssl 1.0有依赖。* -所以安装一个替代SSL库将破坏你的nodejs安装。

安装不同SSL库的另一个解决方案是在这里发布的答案:https://stackoverflow.com/a/59927568/13564342来代替安装libcurl4-gnutls-dev

sudo apt install libcurl4-gnutls-dev

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

Ubuntu 18.04 LTS

sudo apt install libcurl4-openssl-dev libssl-dev

Al认为这是在Michael的回答的评论中提到的,但认为重点是为了方便使用。

如果下面的解决方案在安装它们时给你一个错误,

sudo apt install libcurl4-openssl-dev libssl-dev

然后尝试先更新你的Linux操作系统:

sudo apt update