Writing using a Python shell is OK for a while, but when you need to write a larger code, you would want some kind of IDE (Integrated Development Environment) that would help with additional functionality to help you with your coding. An IDE is built to help make your coding experience easier. It includes features such as highlighting syntax, auto-completion, and source control. It also has tools specifically for execution, debugging, and other stages of programming. There are IDEs that are general-purpose, but also have support for Python. Other IDEs were built solely for Python.
The figure below shows the top few choices by developers. The top five are Jupyter, PyCharm, Spyder, Visual Code Studio, and Sublime Text.
Python-only IDEs
IDLE
IDLE comes with Python by default, and is a lightweight IDE. It is good for beginners learning the language. It has an interactive interpreter, debugger, syntax highlighting, auto indentation, etc.
Jupyter Notebook
Jupyter, previously IPython, is a web browser based IDE, with support for Python, R, Julia, LaTex, HTML, and some other scripting languages. It is easy to use and has powerful features not available with typical desktop based IDEs, such as direct integration to web and visualization libraries like plotly.js. Since it is web based, it is exhaustively used for presentations, displaying code in blogs, and especially the data science community. Code can be exported as .py, as well as pdf and html files, which cannot be done with other IDEs.
PyCharm
PyCharm is rather heavy as compared to other IDEs, but it is definitely worth it. This IDE has many extensive add-ons and features for Python, including suggestions for fixing syntax errors, code inspection, auto-completion, etc. It also supports web based frameworks, and can integrate well with Anaconda and use all of its installed features as well.
Emacs
GNU Emacs is a very old IDE with support for Python. It has been around ever since the origination of Unix, and has a large loyal following.
Spyder
This particular IDE is built on the Anaconda distribution, which is a popular data science based tool. It includes many packages including Scikit-learn, NumPy, Pandas, matplotlib, and others. It is especially useful for anyone working with large amounts of data and text.
General purpose IDEs with support for Python
Sublime Text
Sublime Text is a very popular general purpose IDE that was built with the intention to make things as easy as possible for programmers. It has support for Windows, Mac and Linux, and supports many different programming languages, and Python is one of them. It is a lightweight IDE that has a large following.
Atom
Another lightweight IDE built for multiple languages. It was built on a JavaScript framework, and can support Python after installing an additional extension.
Eclipse with PyDev
Eclipse is a popular heavy IDE that is used by professional developers. It can include support for Python after the PyDev extension is installed. It is a relatively larger IDE, but also comes with extensive features.
Visual Studio Code
Visual Studio is a rather heavy IDE that was designed by Microsoft. It comes with a free and paid version, and Python support can be obtained after installing Python Tools for Visual Studio extension.
VIM
VIM comes installed with Linux by default, and is a very simple text editor. There is no UI, and it is similar to writing Python code via a command line. Good for when you need a very light weight editor for writing short scripts.
Photo by marissa