pycurl上的DNS_SERVERS

时间:2014-06-09 13:14:26

标签: python python-2.7

我尝试使用pycurl使用不同的解析器下载测试页。

>>> pycurl.version
'PycURL/7.19.3.1 libcurl/7.35.0 WinSSL'

我试过了:

c = pycurl.Curl()
c.setopt(c.DNS_SERVERS, '1.2.3.4')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
pycurl.error: (4, '')

它同样发生在Linux和Windows上。我究竟做错了什么?

我可以在urllib2中使用不同的解析器吗?

1 个答案:

答案 0 :(得分:3)

来自http://curl.haxx.se/libcurl/c/libcurl-errors.html

错误4

  

CURLE_NOT_BUILT_IN(4)

     

此处未找到内置的请求功能,协议或选项   libcurl由于构建时决定。这意味着一个功能或   构建libcurl时未启用或显式禁用选项   并且为了使其运行,你必须得到一个重建的libcurl。

我的猜测是底层的libcurl c库没有包含c-ares库。

要解决此问题,可能需要自行编译libcurl并在配置脚本中启用c-ares。

urllib2可能是一个选项,请参阅Tell urllib2 to use custom DNS