For me, the best Python IDE I have used to date has been PyCharm.

  • It performs quite well,
  • the integrated debugger is very effective and easy to understand,
  • it neatly handles multiple concurrent versions of Python installations being available and being used in different projects at the same time,
  • the community edition is fully functional enough that you can really get into it and achieve big productivity gains without necessarily forking out any big bucks.
  • Integrated support for PyUnit testing
  • Integrated support for source control (e.g. Git)
  • Integrated Python console
  • it handles Python 2 as well as 3, even doing Python 3 syntax highlighting in Python 2 to get you compatible for upgrading
  • it can have multiple projects open concurrently.
  • On the down-side, it may take a minute or two for it to re-integrate all the symbols etc, from a new or updated Python installation.

For lighter weight project, I like Atom, but the frequency with with lightweight projects get heavy enough to require PyCharm is such that I've ended up just creating a "Hacks" project with multiple sub-projects for all those hacky little Python things I want to try out. PyCharm is great for that too because I can trivially create independent launch setups for every file in a project, even specifying different Python interpreters for each one.