Traceback (most recent call last):


 "R:\web2py\gluon\restricted.py", line 219, in restricted

exec(ccode, environment)


 "R:\web2py\applications\myapp\models\db.py", line 321, in <module>

'aaaaaaaaaaaaaaaaaaaaaaaaaaaa')


 "R:\web2py\gluon\tools.py", line 884, in __init__

self.request_vars = request and request.vars or current.request.vars


 "R:\web2py\gluon\globals.py", line 316, in vars

self.parse_all_vars()


 "R:\web2py\gluon\globals.py", line 287, in parse_all_vars

for key, value in iteritems(self.post_vars):


 "R:\web2py\gluon\globals.py", line 308, in post_vars

self.parse_post_vars()


 "R:\web2py\gluon\globals.py", line 244, in parse_post_vars

dpost = cgi.FieldStorage(fp=body, environ=env, keep_blank_values=1)


 "c:\python37\lib\cgi.py", line 491, in __init__

self.read_single()


 "c:\python37\lib\cgi.py", line 682, in read_single

self.read_binary()


 "c:\python37\lib\cgi.py", line 704, in read_binary

self.file.write(data)


 "c:\python37\lib\tempfile.py", line 481, in func_wrapper

return func(*args, **kwargs)
TypeError: write() argument must be str, not bytes

Traceback (most recent call last):


 "udemy-dl.py", line 936, in <module>

main()


 "udemy-dl.py", line 725, in main

udemy.ExtractAndDownload()


 "udemy-dl.py", line 303, in ExtractAndDownload

self.login()


 "udemy-dl.py", line 40, in login

extract_info.login(self.username, self.password)


 "/opt/udemy-dl/udemy/_extractor.py", line 147, in login

login_form
= self._fill_login_form(login_popup, username, password)


 "/opt/udemy-dl/udemy/_extractor.py", line 98, in _fill_login_form

login_form = self._form_hidden_inputs('login-form', webpage)


 "/opt/udemy-dl/udemy/_extractor.py", line 88, in _form_hidden_inputs

return _hidden_inputs(form)


 "/opt/udemy-dl/udemy/_utils.py", line 80, in _hidden_inputs

html = re.sub(r'<!--(?:(?!<!--).)*-->', '', html)


 "/usr/lib/python3.4/re.py", line 179, in sub

return _compile(pattern, flags).sub(repl, string, count)
TypeError: expected string or buffer
