El AttributeError, es un error común que aparece en Python por algunas razones que veremos a continuación.
La más común de ellas, es que obtengas este error, debido a qué has empleado una sangría errónea, como por ejemplo mezclar tabulaciones y espacios.
La otra causa que conozco, en Python 3+, es que esto ocurra si usas variables privadas que comienzan con doble subrayado.
Puedes leer sobre otros errores de Python en mi blog.
El aire hincha la vela, pero la deshilacha, y hay tantas velas rotas en el fondo del mar.
J.A. Buesa