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