urllib is trying to do:
b'a,b'.split(',')
Which doesn't work. byte strings and unicode strings mix even less smoothly in Py3k than they used to?—?deliberately, to make encoding problems go wrong sooner rather than later.
So the error is rather opaquely telling you ‘you can't pass a byte string to urllib.parse’. Presumably you are doing a POST request, where the form-encoded string is coming into cgi as a content body; the content body is still a byte string/stream so it now clashes with the new urllib.
So yeah, it's a bug in cgi.py, yet another victim of 2to3 conversion that hasn't been fixed properly for the new string model. It should be converting the incoming byte stream to characters before passing them to urllib.
Did I mention Python 3.0's libraries (especially web-related ones) still being rather shonky? :-)
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…