【问题标题】:pycurl install :( already have min. libcurl versionpycurl install :( 已经有最小的 libcurl 版本
【发布时间】:2026-01-23 12:55:01
【问题描述】:

我在 Intel Mac OS X 10.5 上运行 python 2.6

我正在尝试安装 pycurl 7.16.2.1(此处推荐 http://curl.haxx.se/mail/curlpython-2009-03/0009.html),但由于某种原因,安装看到我的 libcurl 7.16.3,但它仍然坚持我安装 7.16.2 或更高版本(不t 7.16.3 满足?)

这是错误输出:

Running pycurl-7.16.2.1/setup.py -q bdist_egg --dist-dir /tmp/easy_install-3emZIB/pycurl-7.16.2.1/egg-dist-tmp-K10rbP
Using curl-config (libcurl 7.16.3)
src/pycurl.c:54:4:src/pycurl.c:54:4: error: #error "Need libcurl version 7.16.2 or greater to compile pycurl."
 error: #error "Need libcurl version 7.16.2 or greater to compile pycurl."

为了确定 curl-config --version 产生 libcurl 7.16.3

有什么建议吗?我应该升级 libcurl,还是坚持使用出厂默认的 lib?

== 在回复后添加了更多详细信息 ==

AFAIK 我拥有的 python 是出厂默认设置(我自己不是从 python.org 获得的)

Python 2.6.2 (r262:71600, Apr 16 2009, 09:17:39) 
[GCC 4.0.1 (Apple Computer, Inc. build 5250)] on darwin

这是我的 curl 版本。看起来有误导性,因为我使用的是 Intel Macbook,而不是 PPC。

curl 7.16.3 (powerpc-apple-darwin9.0) libcurl/7.16.3 OpenSSL/0.9.7l zlib/1.2.3
Protocols: tftp ftp telnet dict ldap http file https ftps 
Features: GSS-Negotiate IPv6 Largefile NTLM SSL libz 

我将采用与我现有的 python 解释器配合使用的任何 pycurl

我确实有端口:

sudo port -u install py26-pycurl
Error: Port py26-pycurl not found

【问题讨论】:

  • 或者我应该看看 pycurl 以外的其他东西 .. urllib, Twisted ?
  • Twisted 对于获取单个 URL 来说可能是多余的。可以通过标准库与 URL 进行交互:例如httplib, urllib2.

标签: python macos libcurl pycurl


【解决方案1】:

如果您使用的是 python.org Python 2.6,它是使用 10.4 SDK 构建的,以便能够在多个版本的 OS X 上运行。在这种情况下,pycurl 构建可能会尝试链接到 10.4 libcurl 的版本,似乎是 7.13.1。您链接到的线程正在谈论使用 10.5 Apple 提供的 Python 2.5,它是使用 10.5 库构建的,因此,pycurl 7.16.2.1 似乎可以正确构建和安装。

可以尝试手动安装pycurl;它的 setup.py 有一个记录在案的 --curl-config 参数,它允许您指定要使用的 curl-config 的路径。不幸的是,这似乎不适用于 /usr/bin/curl-config;未添加正确的包含文件目录。除了破解 setup.py 文件,更好的方法是安装更新的 libcurl 并使用最新的 pycurl。最简单的方法是使用 MacPorts。更简单的是从 MacPorts 安装 pycurl 和 python2.6。如果您还没有使用 MacPorts,download and install the base files。那么:

sudo port selfupdate
sudo port -u install py26-curl   #edited

MacPorts python2.6 将位于/opt/local/bin/python2.6

如果您宁愿坚持使用已安装的 python2.6,请安装 curl 包:

sudo port selfupdate
sudo port -u install curl

然后使用类似的方式手动安装 pycurl:

curl http://pycurl.sourceforge.net/download/pycurl-7.19.0.tar.gz | tar xz
cd pycurl-7.19.0
python2.6 setup.py install --curl-config=/opt/local/bin/curl-config

【讨论】:

  • 嗨,内德,这里没有足够的空间添加,我已经在上面的问题上添加了我的答案
  • 从哪里开始?你说你在 10.5 上运行。 Apple 将 Python 2.5(和 2.3)与 10.5 一起发布。在 10.6 上,Apple 发布了 2.6.1。所以2.6.2肯定不是出厂默认的。尝试which python2.6 找出它的安装位置。抱歉:MacPorts 包名是py26-curl,而不是py26-pycurl;我已经相应地编辑了答案。如果你有 curl 7.16.3,那不是标准的 curl。您可能已经安装了较旧的 MacPorts 版本的 curl 和 python26。在您执行任何其他操作之前,请尝试使用以下内容进行更新:sudo port selfupdate ; sudo port -u upgrade outdated
  • 就是这样!我升级了macports,用macports升级curl,然后easy_install安装了pycurl。谢谢内德!
  • 很高兴听到。顺便说一句,要练习良好的 Stack Overflow 公民身份,您应该将答案标记为已接受或完善您的问题,直到您得到可接受的答案。
  • 对不起!我认为我无法将答案标记为正确,原因与我无法投票(新用户)的原因相同。刚刚做了。再次感谢内德。
【解决方案2】:

我从 Sourceforge 获得了我的 pycurl。似乎他们可以向后和向前安装可匹配任何“随附”Mac OS X 配置的构建。我相信 URL 是 http://pycurl.sourceforge.net,但不要引用我的话。

BZT

【讨论】:

    最近更新 更多