Hey Fahim, really appreciate your help!!
The full error I get back is below…
Would it be possible to share your setup / conda env with me to see what I might have done differently?
---------------------------------------------------------------------------
TimeoutError Traceback (most recent call last)
File ~/miniconda3/envs/fastai/lib/python3.10/urllib/request.py:1348, in AbstractHTTPHandler.do_open(self, http_class, req, **http_conn_args)
1347 try:
-> 1348 h.request(req.get_method(), req.selector, req.data, headers,
1349 encode_chunked=req.has_header('Transfer-encoding'))
1350 except OSError as err: # timeout error
File ~/miniconda3/envs/fastai/lib/python3.10/http/client.py:1282, in HTTPConnection.request(self, method, url, body, headers, encode_chunked)
1281 """Send a complete request to the server."""
-> 1282 self._send_request(method, url, body, headers, encode_chunked)
File ~/miniconda3/envs/fastai/lib/python3.10/http/client.py:1328, in HTTPConnection._send_request(self, method, url, body, headers, encode_chunked)
1327 body = _encode(body, 'body')
-> 1328 self.endheaders(body, encode_chunked=encode_chunked)
File ~/miniconda3/envs/fastai/lib/python3.10/http/client.py:1277, in HTTPConnection.endheaders(self, message_body, encode_chunked)
1276 raise CannotSendHeader()
-> 1277 self._send_output(message_body, encode_chunked=encode_chunked)
File ~/miniconda3/envs/fastai/lib/python3.10/http/client.py:1037, in HTTPConnection._send_output(self, message_body, encode_chunked)
1036 del self._buffer[:]
-> 1037 self.send(msg)
1039 if message_body is not None:
1040
1041 # create a consistent interface to message_body
File ~/miniconda3/envs/fastai/lib/python3.10/http/client.py:975, in HTTPConnection.send(self, data)
974 if self.auto_open:
--> 975 self.connect()
976 else:
File ~/miniconda3/envs/fastai/lib/python3.10/http/client.py:1447, in HTTPSConnection.connect(self)
1445 "Connect to a host on a given (SSL) port."
-> 1447 super().connect()
1449 if self._tunnel_host:
File ~/miniconda3/envs/fastai/lib/python3.10/http/client.py:941, in HTTPConnection.connect(self)
940 sys.audit("http.client.connect", self, self.host, self.port)
--> 941 self.sock = self._create_connection(
942 (self.host,self.port), self.timeout, self.source_address)
943 # Might fail in OSs that don't implement TCP_NODELAY
File ~/miniconda3/envs/fastai/lib/python3.10/socket.py:845, in create_connection(address, timeout, source_address)
844 try:
--> 845 raise err
846 finally:
847 # Break explicitly a reference cycle
File ~/miniconda3/envs/fastai/lib/python3.10/socket.py:833, in create_connection(address, timeout, source_address)
832 sock.bind(source_address)
--> 833 sock.connect(sa)
834 # Break explicitly a reference cycle
TimeoutError: [Errno 60] Operation timed out
During handling of the above exception, another exception occurred:
URLError Traceback (most recent call last)
Input In [9], in <cell line: 1>()
----> 1 results = search_images_ddg('grizzly bear', max_images=10)
2 # ims = results.attrgot('contentUrl')
3 print(len(results), results)
File ~/miniconda3/envs/fastai/lib/python3.10/site-packages/fastbook/__init__.py:57, in search_images_ddg(term, max_images)
55 assert max_images<1000
56 url = 'https://duckduckgo.com/'
---> 57 res = urlread(url,data={'q':term})
58 searchObj = re.search(r'vqd=([\d-]+)\&', res)
59 assert searchObj
File ~/miniconda3/envs/fastai/lib/python3.10/site-packages/fastcore/net.py:117, in urlread(url, data, headers, decode, return_json, return_headers, timeout, **kwargs)
115 "Retrieve `url`, using `data` dict or `kwargs` to `POST` if present"
116 try:
--> 117 with urlopen(url, data=data, headers=headers, timeout=timeout, **kwargs) as u: res,hdrs = u.read(),u.headers
118 except HTTPError as e:
119 if 400 <= e.code < 500: raise ExceptionsHTTP[e.code](e.url, e.hdrs, e.fp, msg=e.msg) from None
File ~/miniconda3/envs/fastai/lib/python3.10/site-packages/fastcore/net.py:108, in urlopen(url, data, headers, timeout, **kwargs)
106 if not isinstance(data, (str,bytes)): data = urlencode(data)
107 if not isinstance(data, bytes): data = data.encode('ascii')
--> 108 try: return urlopener().open(urlwrap(url, data=data, headers=headers), timeout=timeout)
109 except HTTPError as e:
110 e.msg += f"\n====Error Body====\n{e.read().decode(errors='ignore')}"
File ~/miniconda3/envs/fastai/lib/python3.10/urllib/request.py:519, in OpenerDirector.open(self, fullurl, data, timeout)
516 req = meth(req)
518 sys.audit('urllib.Request', req.full_url, req.data, req.headers, req.get_method())
--> 519 response = self._open(req, data)
521 # post-process response
522 meth_name = protocol+"_response"
File ~/miniconda3/envs/fastai/lib/python3.10/urllib/request.py:536, in OpenerDirector._open(self, req, data)
533 return result
535 protocol = req.type
--> 536 result = self._call_chain(self.handle_open, protocol, protocol +
537 '_open', req)
538 if result:
539 return result
File ~/miniconda3/envs/fastai/lib/python3.10/urllib/request.py:496, in OpenerDirector._call_chain(self, chain, kind, meth_name, *args)
494 for handler in handlers:
495 func = getattr(handler, meth_name)
--> 496 result = func(*args)
497 if result is not None:
498 return result
File ~/miniconda3/envs/fastai/lib/python3.10/urllib/request.py:1391, in HTTPSHandler.https_open(self, req)
1390 def https_open(self, req):
-> 1391 return self.do_open(http.client.HTTPSConnection, req,
1392 context=self._context, check_hostname=self._check_hostname)
File ~/miniconda3/envs/fastai/lib/python3.10/urllib/request.py:1351, in AbstractHTTPHandler.do_open(self, http_class, req, **http_conn_args)
1348 h.request(req.get_method(), req.selector, req.data, headers,
1349 encode_chunked=req.has_header('Transfer-encoding'))
1350 except OSError as err: # timeout error
-> 1351 raise URLError(err)
1352 r = h.getresponse()
1353 except:
URLError: <urlopen error [Errno 60] Operation timed out>```