I was using igraph to plot a lot of graphs to files when I got this error message:
AttributeError: 'Plot' object has no attribute '_surface'
The function call I was using to do the plotting was
ig.plot(g, outf_name, **visual_style)
It turns out that the cause of this error is using an outf_name that doesn't end in a known extension.