IDE stands for Integrated Development Environment. It’s a coding tool that allows you to write, test, and debug your code in an easier way, as they typically offer code completion or code insight by highlighting, resource management, compiler, debugging tools, and all the other requirements needed for software development. And even though the IDE is a strictly defined concept, it’s starting to be redefined as other tools such as notebooks that start gaining more and more features that traditionally belong to IDEs.
IDEs help in consolidating different aspects of a computer program. Choosing an integrated development environment (IDE) that suits your needs is often a non-trivial task. There are many available options. There is a number of interesting IDEs, with all kind of tools that might help you code faster, boost your productivity, and avoid some errors. Some of them are free and open-source.
This article describes the top 6 Python IDEs, suitable for Web Development, Desktop App Development, Data Science, Machine Learning, and so on.
Table of Contents
1. PyScripter
PyScripter originally started as a lightweight IDE designed to serve the purpose of providing a strong scripting solution for Delphi applications, complementing the excellent Python for Delphi (P4D) components.
However, with the encouragement of the P4D creator Morgan Martinez and a few early users, it has now evolved into a full-featured stand-alone Python IDE. It is built in Delphi using P4D and the SynEdit component but is extensible using Python scripts.
Currently, it is only available for Microsoft Windows operating systems and features a modern user-interface. Being built in a compiled language is rather snappier than some of the other IDEs and provides an extensive blend of features that make it a productive Python development environment.
PyScripter has the ambition to create a Python IDE that is competitive with commercial Windows-based IDEs available for other languages.
Features
- Syntax Highlighting Editor
- Unicode based
- Full support for encoded Python source files
- Code folding
- Brace Highlighting
- Python source code utilities ((un)tabify, (un)comment, (un)indent, etc.)
- Code completion and call tips
- Code and debugger hints
- Syntax checking as you type
- Context sensitive help on Python keywords
- Parameterized Code Templates
- Accept files dropped from Explorer
- File change notification
- Converting line breaks (Windows, Unix, Mac)
- Print preview and print syntax highlighted Python code
- Syntax highlighting of HTML, XML and CSS files
- Split view file editing
- Firefox-like search and replace
- Side-by-side file editing
- Integrated Python Interpreter
- Code Completion
- Call Tips
- Command History
- Execute scripts without saving them
- Integrated Python Debugging
- Remote Python Debugger
- Call Stack
- Variables Window
- Watches Window
- Conditional breakpoints
- Debugger hints
- Thread debugging
- Post-mortem analysis
- Can run or debug files without first saving them
- Browse for other powerful features here: Features · pyscripter/pyscripter Wiki (github.com)
You can install PyScripter by downloading it on Source Forge.
2. Spyder
Spyder (part of Anaconda Distribution) is an open-source cross-platform IDE for Data Science. It integrates the essentials libraries for data science, such as NumPy, SciPy, Matplotlib, scikit-learn, and IPython, besides that, it can be extended with plugins.
Different from most of the IDEs around the web, Spyder was built specifically for Data Science. It may not be as charming as other IDEs such as Visual Studio or Atom, or may not as lightweight as PyScripter, but give it a try! The learning curve is so smooth that you will master it in a blink of an eye. If you are a beginner, you’ll like to use features like the online help, which allows you to search for specific information about libraries.
Note also how this interface is quite similar to RStudio; That’s why, if you’re switching between Matlab or R to Python, this is the way to go.
Features
Spyder contains features like a text editor with syntax highlighting, code completion and variable exploring, which you can edit its values using a Graphical User Interface (GUI).
You can install Spyder by downloading it here.
3. PyCharm
PyCharm is an IDE made by the folks at JetBrain, a team responsible for one of the most famous Java IDE, the IntelliJ IDEA.
PyCharm is perfect for those who already have experience using another JetBrain’s IDE, due to the fact that the interface and features be similar. Also, if you like IPython or Anaconda distribution, it’s nice for you to know that PyCharm integrates its tools and libraries such as NumPy and Matplotlib, allowing you work with array viewers and interactive plots.
In addition to Python, PyCharm provides support for JavaScript, HTML/CSS, Angular JS, Node.js, and so on, what makes it a good option for web development.
Features
Just like other IDEs, PyCharm has interesting features such as a code editor, errors highlighting, a powerful debugger with a graphical interface, besides of Git integration, SVN, and Mercurial. You can also customize your IDE, choosing between different themes, color schemes, and key-binding. Additionally, you can expand PyCharm’s features by adding plugins; You can take a look at the PyCharm Plugins Library here.
You can download PyCharm here.
4. Thonny
The next IDE is Thonny: An IDE for learning and teaching programming. It’s a software developed at The University of Tartu.
Features
Among its features, Thonny supports code completion and highlight syntax errors, but it also provides a simple debugger, which you can run your program step-by-step. This IDE is very nice for beginners, as they can step through statements and expressions. While editing a function, a new window is opened with local variables and the code being shown separately from your main code. The purpose of Thonny is to give you a good understanding of how Python works under the hood.
You can download Thonny for free on the Bitbucket repository for Windows, Linux, and Mac.
5. Visual Studio Code
Visual Studio Code (or just VS) is another proprietary full-featured IDE. It was created by Microsoft in 1997. VS is a heavy-weight IDE with support for many languages. It offers intellisense, code refactoring, debugging, profiling, and other tools. It has full support for Python, including scientific computing, data science, and web development.
VS has Python console and excellent support for web projects in Django, Flask, Bottle, etc. VS really excels in so-called mixed-mode debugging, that is when you need to debug Python and C/C++ side by side.
For most Python developers VS is unnecessarily heavy. It can be used on Windows and Mac OS but lacks Linux support.
There are three versions of VS: Community Edition (free, but limited on small teams, open-source projects, etc.), Professional Edition (not free), and Enterprise Edition (also not free).
You can download VS here.
6. Jupyter Notebook
Jupyter Notebook was born out of IPython in 2014. It is a web application based on the server-client structure, and it allows you to create and manipulate notebook documents – or just “notebooks”.
Jupyter Notebook provides you with an easy-to-use, interactive data science environment across many programming languages that doesn’t only work like an IDE, but also as a presentation or educational tool. It’s perfect for those who are just starting out with Data Science.
Features
The Jupyter Notebook supports markdowns, allowing you to add HTML components from images to videos. Thanks to Jupyter, you can easily see and edit your code in order to create compelling presentations. For instance, you can use data visualization libraries like Matplotlib and Seaborn and show your graphs in the same document where your code is. Besides all of this, you can export your final work to PDF and HTML files, or you can just export it as a .py file. In addition, you can also create blogs and presentations from your notebooks.
You can download Jupyter Notebook here.
Check out Python4Delphi which easily allows you to build Python GUIs for Windows using Delphi.
Check out DelphiVCL which easily allows you to build GUIs for Windows using Python.