【问题标题】:"Could not run curl-config: [Errno 2] No such file or directory" when installing pycurl安装pycurl时“无法运行curl-config:[Errno 2]没有这样的文件或目录”
【发布时间】: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?

标签: python installation 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 库是 gnutls 或 nss,则必须相应地使用 --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://stackoverflow.com/a/59927568/13564342 改为安装 libcurl4-gnutls-dev

            sudo apt install libcurl4-gnutls-dev
            

            【讨论】:

              猜你喜欢
              • 2018-12-01
              • 2023-02-15
              • 2019-05-22
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2019-07-13
              • 2021-05-04
              相关资源
              最近更新 更多