I’m still a relative noob when it comes to Python. I started just a few months back and have mostly dabbled with website automation using Selenium. I started by just using Notepad++ and quickly graduated to gVim, but I was missing out on a lot of common IDE features. I wanted to be able to set breakpoints and jump to functions in a go-to-definition fashion.
So I did some searching and found PyCharm from JetBrains. It comes in two flavors, professional and community. Professional offers a 30-day free trial, then you have to buy whereas the community edition is free to use. Since I’m only interested in lightweight, Python-only development, the community edition is perfect for me.
The things I like best about PyCharm are exactly what I mentioned above. I can right-click a function or variable and jump to its definition. I can set breakpoints for debugging, or even just run the script and see results in the built-in console. Code completion and code analysis are also extremely helpful since I’m still pretty new. Being able to scroll through a list of available functions on an object is much more efficient than searching the internet each time, and code analysis helps me learn about the conventions of this new language.
It comes with a variety of keymaps to choose from. Since I was doing my previous Python development in gVim, I installed the Vim plug-in. I soon grew tired of re-learning the ins & outs of Vim, though, and switched to the Visual Studio keymap. A few adjustments later (Declaration to F12, Back to Ctrl+Minus, & Forward to Ctrl+Shift+Minus) and I felt right at home.
I was happy to see that you can create and manage virtual environments through the IDE, allowing projects to be isolated and free from the unneeded packages of other projects.
Another great feature is that it automatically detected and integrated with source control (Git). Without any configuration at all, I’m able to view the history of a file and compare versions.
PyCharm gives me that full IDE feel that I’m used to and was looking for. I definitely recommend it for anybody getting started with Python. I think I’d even suggest checking it out to grizzled vets.