Y por eso este tipo de cosas es por las que no se debe de aprender python con las versiones mas recientes (3.x) por lo menos por un tiempo.
En python 3.x las cadenas no son bytes contrario a python 2.x
Tienes que convertir tu cadena usando algún tipo de encoding.
Ejemplos:
Código:
'Esto es un string (y no son bytes)'
b'esto son bytes (y no son string)'
'esto es un string'.encode() #Pero lo que devuelve encode son bytes
Así que tienes que debes de convertir de string a bytes parms (en la linea 14 de tu código de arriba).