Ошибка AttributeError происходит, поскольку PycURL поддерживает только параметры curl, перечисленные в src / module.c .Можно добавить поддержку CURLOPT_DNS_INTERFACE, отразив, как она поддерживает CURLOPT_INTERFACE - добавив
insint_c(d, "DNS_INTERFACE", CURLOPT_DNS_INTERFACE);
и
case CURLOPT_DNS_INTERFACE:
в src / module.c и src / easyopt.c после строко CURLOPT_INTERFACE, я мог бы создать версию, которая поддерживает DNS_INTERFACE.Я использовал python setup.py install
для сборки (см. документы ), столкнулся с двумя ошибками, которые были решены с помощью этих ответа и make src/docstrings.c
(см. GitHub ).
Вот пример из документов с добавленным DNS_INTERFACE:
import pycurl
from StringIO import StringIO
buffer = StringIO()
c = pycurl.Curl()
c.setopt(c.URL, 'http://pycurl.io/')
c.setopt(c.WRITEDATA, buffer)
c.setopt(c.DNS_INTERFACE, "enp9s0")
c.perform()
c.close()
body = buffer.getvalue()
print(body)
В настоящее время он дает мне pycurl.error: (4, '')
на c.setopt(c.DNS_INTERFACE, "enp9s0")
, но эта ошибка будет вероятно для вас не произойдет, так как вы создали libcurl с поддержкой c-ares.