PyCharm 1 week Update

I’ve been using PyCharm for about a week now across a couple projects. I’d like to note a few things I’m really enjoying:

  • PyCharm is aware of your venv config and you can use it to pip install new packages. Ok, so pip is easy to use for installing. But it also provides a quick at-a-glance view of the packages you’ve installed and their versions – and I find it easier to view than a pip freeze.
  • I know KDevelop has this for C++, but it doesn’t really have the same support for Python – being able to run my Python files from within PyCharm as well as being able to run the debugger from within PyCharm is like how new cars unlock for you when you get close. It’s not necessary. It’s not even that huge of an improvement. But it’s a quality of life thing that you miss when it’s not there.
  • PyCharm is very smart about git. With KDevelop, I could add files withink the GUI (which is nice for making sure the project is aware of the file and provides a quick visual cue). But then I had to remember to git add it (either in the GUI or on the commandline). With PyCharm, every time I add a file through the GUI, it asks me if I want to add it to version control.
  • I love being able to do a commit/push at once through the PyCharm GUI.
  • It also noticed on a new project that I hadn’t setup a .gitignore yet. AND when I said I wanted to set one it, it did just like GitKraken and automatically created an awesome file for me that already had all the Python stuff you’d want to ignore.
  • Finally, I also figured out the one thing I was strongly missing from KDevelop – the ability to highlight your variables so that it’s quick and easy to find them throughout your source code without having to first highlight them. I asked on reddit and was told to enable semantic highlighting.

So, I think I’m pretty strongly hooked. I guess there’s still something that could come about that would make me turn away from PyCharm, but right now I’m thinking it’s basically the BEST way to code in Python on Windows and Linux.