This comes from us not having a special implementation of the eigen
functions for symbolic matrices (i.e., using maxima). For now, you can do:
sage: a,b = var('a'),var('b')
sage: M = matrix(SR,4,4,((a, 0, 0, 0), (0,-a,0,0), (0,0,a,0), (0,0,0,-a)))
sage: M._maxima_().eigenvectors().sage()
[[[-a, a], [2, 2]], [0, 1, 0, 0], [0, 0, 0, 1], [1, 0, 0, 0], [0, 0, 1, 0]]
See
http://maxima.sourceforge.net/docs/manual/en/maxima_25.html#Item_003a-eigenvectors
to understand the output of the command.
The specific error you received came from there not being a .degree()
method for a symbolic polynomial.
I'm not sure what is going on here...
Thanks,
Jason