安装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 库是 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://***.com/a/59927568/13564342 改为安装 libcurl4-gnutls-dev
sudo apt install libcurl4-gnutls-dev
【讨论】:
以上是关于安装pycurl时“无法运行curl-config:[Errno 2]没有这样的文件或目录”的主要内容,如果未能解决你的问题,请参考以下文章
YUM安装提示PYCURL ERROR 6 - "Couldn't错误的解决办法
PyCurl 安装错误, ERROR: Command errored out with exit status 10: command: '...