The Best IDEs for your Python Projects

What program do you use for writing code? A simple text editor? Or maybe one of many integrated development environments (IDEs)? There are TONS of options! So many that you can waste at least an entire day (or more) researching the best one. A web search will turn up many websites with lists of the best IDEs. Lucky for you, I’ve spent a lot of time using most of them. In this post I will provide my top choices of free IDEs for different situations and operating systems.

Topics Covered:

  • Workshops/tutorials
  • Cross Platform
  • MATLAB converts
  • Most Flexible

Updated: 2020-05-03

What’s Wrong with Notepad?

Well, nothing. If you have your heart set on Notepad/Nano/Sublime/etc. and nothing else will do, then you wouldn’t be reading this post. Notepad ++ is great for quick edits and a wonderful replacement for standard OS text editors. However, IDEs provide a ton of convenience functionality not present in a basic text editor.

The recommendations below come from my experience working through grad school and my career. Use these as a starting point if you don’t have much experience using IDEs. Eventually, you will develop your own favorites.

Workshops/Tutorials

Jupyter is THE best IDE for workshops/tutorials. If you need to share code with any size group then look no further. Jupyter Lab is the latest incarnation of the platform. I suggest familiarizing yourself with Jupyter notebooks in general because you will see them in the wild and at every Python workshop/tutorial you ever attend.

While Jupyter notebooks are great for testing and sharing code, it’s not great for getting real work done. What I mean is that Jupyter works well for code development, but to actually run it you will likely want to use cluster schedulers and be able to run the script via command line. Jupyter notebooks are also less Git friendly than simple .py scripts. It’s also much easier to track changes to regular python text files than a Jupyter notebook (unless things have changed recently).

Jupyter Lab has a lot going for it, but I don’t think it should be the only tool in your arsenal.

Cross Platform

Visual Studio Code by Microsoft is the best cross platform IDE that I have found. It’s available for Windows, Linux, and Mac. You can install extensions for multiple programming languages, customize most of the look/feel of the IDE, and there are tons of helpful addons to make life much easier. This is my go-to for everyday coding sessions. It’s simple to switch between different Conda environments, provides full access to Git right in the IDE, and it can probably cook you breakfast!

I was originally weary about it being backed by Microsoft, but they provide at least monthly updates to the software and you get full functionality for free without having to sign up or log in to anything.

MATLAB converts

If you are coming from MATLAB, the transition to Python is easier with a familiar IDE. The Spyder IDE is hands down the closest match to MATLAB that exists for Python. Sypder was my first IDE when I switched from MATLAB and it felt like home. The main drawback is you need to install Sypder for each individual Conda environment, and it can take up quite a bit of disk space. You can make shortcuts to each environments Sypder IDE, but things get cluttered if you have more than a few environments. After a year or so of using Sypder, I discovered there were other options where I didn’t have to install an IDE in every environment.

If you are switching from MATLAB to Python, give Sypder a serious look.

Most Flexible

Atom is a hackable text editor. If you really want to procrastinate, Atom is the option for you. You can create a Python IDE that works similarly to Visual Studio Code because they are both written with the same framework. However, this option takes much more effort to setup than all other options. I don’t plan to make a post about how to turn Atom into a Python IDE, but you can find other websites that walk you through it. Maybe I will do a post about it in the future if people ask for it.

If you don’t want Microsoft looking over your shoulder and you love spending hours/days customizing the look/functionality of an IDE, Atom is the way to go.


Related Posts:

Python for Scientists – Introduction

Python for Scientists – Directory Structures

Liked it? Take a second to support AtmoGuy on Patreon!
Become a patron at Patreon!

Comments are closed.

Proudly powered by WordPress | Theme: Baskerville 2 by Anders Noren.

Up ↑