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.
For me, the best Python IDE I have used to date has been PyCharm.
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.