Moving from python2 to python3

Ken Brown kbrown@cornell.edu
Tue Dec 29 15:04:00 GMT 2020


On 12/29/2020 7:04 AM, Achim Gratz wrote:
> Marco Atzeri via Cygwin-apps writes:
>> all python packages have been updated.
>>
>> /usr/bin/python
>> /usr/bin/python3
>>
>> both point now to python3.8 as default using alternatives.
> 
> You broke the CI:
> 
> Traceback (most recent call last):
>    File "./scallywag", line 69, in <module>
>      response = urllib.request.urlopen(req, json.dumps(data).encode('utf-8'))
>    File "/usr/lib/python3.8/urllib/request.py", line 222, in urlopen
>      return opener.open(url, data, timeout)
>    File "/usr/lib/python3.8/urllib/request.py", line 525, in open
>      response = self._open(req, data)
>    File "/usr/lib/python3.8/urllib/request.py", line 542, in _open
>      result = self._call_chain(self.handle_open, protocol, protocol +
>    File "/usr/lib/python3.8/urllib/request.py", line 502, in _call_chain
>      result = func(*args)
>    File "/usr/lib/python3.8/urllib/request.py", line 1379, in http_open
>      return self.do_open(http.client.HTTPConnection, req)
>    File "/usr/lib/python3.8/urllib/request.py", line 1350, in do_open
>      h.request(req.get_method(), req.selector, req.data, headers,
>    File "/usr/lib/python3.8/http/client.py", line 1255, in request
>      self._send_request(method, url, body, headers, encode_chunked)
>    File "/usr/lib/python3.8/http/client.py", line 1301, in _send_request
>      self.endheaders(body, encode_chunked=encode_chunked)
>    File "/usr/lib/python3.8/http/client.py", line 1250, in endheaders
>      self._send_output(message_body, encode_chunked=encode_chunked)
>    File "/usr/lib/python3.8/http/client.py", line 1010, in _send_output
>      self.send(msg)
>    File "/usr/lib/python3.8/http/client.py", line 950, in send
>      self.connect()
>    File "/usr/lib/python3.8/http/client.py", line 923, in connect
>      self.sock.setsockopt(socket.IPPROTO_TCP, socket.TCP_NODELAY, 1)
> AttributeError: module 'socket' has no attribute 'TCP_NODELAY'

An internet search led me to this:

   https://bugs.python.org/issue41374

As explained in that report, the TCP_* macros weren't defined in the build of 
python on Cygwin because <netinet/tcp.h> was not included (see 
https://github.com/python/cpython/blob/592527f3ee59616eca2bd1da771f7c14cee808d5/Modules/socketmodule.h#L11). 
  Is that still the case in the current python sources?

Ken


More information about the Cygwin-apps mailing list