安装pycurl时出现“无法运行curl-config:[Errno 2]没有那个文件或目录”的错误提示。

292

我正尝试通过以下方式安装pycurl:

sudo pip install pycurl

下载成功,但运行setup.py时出现以下回溯(traceback):

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吗? - Padraic Cunningham
我正在使用OSX,并通过ssh连接到Linux终端。 - user3688241
你想要安装pycurl在哪里? - Padraic Cunningham
13个回答

657
在Debian上,我需要以下软件包来解决这个问题。
sudo apt install libcurl4-openssl-dev libssl-dev

4
这解决了我在Ubuntu 12.04 (x64)上安装Python3.4时遇到的问题。 - Ilia Shakitko
30
谢谢,我需要安装 libssl-dev 包来补充你的内容。奇怪的是,pip 与系统包管理器分离,但却没有给出有关在非常常见的 Linux 发行版中可能缺少哪个软件包的提示。 - Mitja
19
适用于Ubuntu 18.04 LTS。 - John McGehee
3
是的,它也适用于运行在WSL上的Ubuntu 18.04.1 LTS。 - nephewtom
1
适用于Pop!_OS 20.04 LTS / Ubuntu 20.04 LTS。 - ScriptAutomate
显示剩余3条评论

89

yum软件包管理器类似

yum install libcurl-devel

如果您使用dnf,请使用

dnf install libcurl-devel

在我的情况下,还缺少python-devel,因此以下步骤解决了我的问题: yum install libcurl-devel python-devel - sokhaty
没错。在Ubuntu 20.04系统上只需运行apt install libcurl4-openssl-dev即可。(此操作系统发行版中没有其他提及) - Marcos

30

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

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

如此处所述here


1
感谢提供 Python-dev 包!没有这个包,我会遇到以下错误:src/pycurl.h:4:20: 致命错误:Python.h:没有那个文件或目录 - Skullone
一个更好的链接是https://dev59.com/Bl0Z5IYBdhLWcg3w3DQW#31002176,它解释了这些是在Linux上构建C Python扩展所需的C头文件库。 - Noumenon
在Docker中使用Ubuntu:focal对我来说没问题。 - Sergio Gao

21
在Alpine Linux中,你应该执行:
apk add curl-dev python3-dev libressl-dev

2
在Docker的python2.7-alpine镜像中,apk add curl-dev就足够了,谢谢! - ItayB

6

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

Ubuntu 18.04 LTS

sudo apt install libcurl4-openssl-dev libssl-dev

虽然Michael的回答中已经提到了这一点,但为了方便起见,我还是想强调一下。


2

这是我在Ubuntu 14.04上解决问题的方法:

执行以下命令:apt-get install libcurl4-gnutls-dev


2

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

警告:缺少python-pycurl库,在启动shinken守护进程之前必须安装

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


1

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

yum install libcurl-devel gcc

1
在CentOS 8上,我是用"yum install openssl-devel.x86_64 libcurl-devel.x86_64"安装的。 - MiroJanosik

1
如果以下解决方案在安装时出现错误,
sudo apt install libcurl4-openssl-dev libssl-dev

那么请先尝试使用以下命令更新您的Linux操作系统:

sudo apt update

0
在OpenSUSE上:
zypper in libcurl-devel 

zypper安装libcurl-devel和libopenssl-devel - user1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接