I'm using emacs for python, and I'd like to have a nice useable shell in emacs to run an interpreter alongside my editing. 
Is there any better emacs shell package out there? The default shell is awful.
That depends on what shell you are using, in GNU Emacs 23 there are at least 3 built in:

shell - ugly, not working tab
eshell - not ugly but tab not working
term - not ugly and seems like ipython works with all goodies in it

So you might want to try the term mode.
Is there any way to get a better terminal in emacs?