Our first small steps with Python, which generally involve doing a program & # 39; Hello World & # 39; and a couple of typographical errors, do not require much in the way of specialized tools. It is fine to extract the code in a text editor, change to a terminal and then execute it. When it does not work, you can go back to the editor, correct the typographical errors and then execute it again.
However, as coding and testing become more complicated, involving multiple files and unit tests, these context changes become ineffective and frustrating. . Life is easier when we can write, execute and discuss our code from the same place.
Exactly where an elegant text editor stops and an Integrated Development Environment (IDE) begins is a fuzzy boundary. At a minimum, I would like an application that: highlights syntax, code folding and matching brackets, has some knowledge of the source files of a project and facilitates the execution of the code (or part of it). More advanced features can include code hints, a debugger and integration with online repositories.
In this article we have chosen five of our favorite IDEs, which are efforts that we believe offer a good overview of what is offered.  Atom "class =" expandable lazy-image lazy-image-loading lazyload optional-image "onerror =" this.parentNode.replaceChild (window.missingImage (), this) "sizes =" auto "data-normal =" https://vanilla.futurecdn.net/techradar/media/img/missing-image.svg "data-src =" https://cdn.mos.cms.futurecdn.net/APzC8VBVYGvYnYZHkY8JC-320-80.jpg "data -srcset = "https://cdn.mos.cms.futurecdn.net/APzC8VBVYGvYnYZHkY8JC-320-80.jpg 320w, https://cdn.mos.cms.futurecdn.net/APzC8VBVYGvYnYZHkY8JC-650-80.jpg 650w" data-sizes = "auto" data-original-mos = "https://cdn.mos.cms.futurecdn.net/APzC8VBVYGvYnYZHkY8JC.jpg" data-pin-media = "https: //cdn.mos.cms.futurecdn .net / APzC8VBVYGvYnYZHkY8JC.jpg "/>
An IDE that facilitates almost anything you can think of
Clean and intelligent interface
Complete package manager
Considerable memory footprint
Atom is described as a "pirateable text editor for the 21st century". " It's maintained by the social encoding megalith GitHub, so as you might expect, it can do pretty much everything you can imagine. And if you can not, then it is almost certain that someone is working on a complement to fix it.
Atom has its own complete package manager and a large community that works on packages for it. In addition to the integrated integration of Git and GitHub, Atom allows you to collaborate on coding projects in real time through the Teletype package. Several thousands of other packages are available, but Python coders looking for a more efficient workflow would do well to look for a package of scripts.
This offer is based on the electron frame, so Atom is cross-platform, but it also has a negligible memory footprint. Encoders who prefer their applications to be light will oppose the 400 MB installation footprint (including their dependencies) and should look elsewhere. But even in a modest system it works well and all the functionality that Atom provides means that it is worth the space investment.
Despite all its features, Atom has a clean interface and is much more friendly for beginners than you might expect. The project view is useful once you start playing with larger projects and you can split the interface panels so that you like it.
Python minimum IDE that will not stand in your way
Without project management capability
IDLE is easy to ignore: the integrated development environment itself custom Python. IDLE (named after Eric Idle of Monty Python) is pretty minimal compared to some of the other offers, but it has everything you need and it certainly will not stand in your way.
It is encoded in Python and uses the tkinter light toolkit to draw its GUI. When starting IDLE a Python shell will open, as it is obtained when starting Python from the terminal. Here you can play with snippets of code, with the advantage that the keywords and output will be well colored.
Moving on to this point, you can open a new window to start coding correctly. Your code will be properly highlighted and will be indented automatically, with a configurable indentation level. IDLE supports the use of spaces or tabs for indentation, and can automagically convert between the two; In addition, you can apply indentation to several lines at the same time.
IDLE lacks project management facilities, but that is not a problem if your project spans only a handful of files. It has a powerful debugger that allows one step through the code or pass over each high level function. The debugger shows the call stack, as well as the state of the local and global variables.
Comes as standard in the new versions of Raspbian
Ideal for beginners
But unfortunately the installation is not easy to use
Thonny is the least & # 39; developer-centric & # 39; of all the IDEs that we have highlighted here, but that does not mean it is less powerful. It was developed at the University of Tartu in Estonia and is written in Python. It has a powerful debugger that is ideal for learning the ins and outs of coding without worrying about how breakpoints work.
The debugger can show you the state of the variables as the program runs. It allows you to take small or large steps through the program, which is excellent if you are tracking to find errors. This is a much better practice than experienced beginners and coders alike are tempted to do occasionally, splashing your code with messy print () statements.
Thonny will automatically bleed as you type, which is useful for anyone new to Python since the language uses indents to delineate functions, loops, classes, clauses, etc. It will automatically complete your code and provide matching parentheses / parentheses. It will also be useful to highlight any syntax errors.
It would be ideal for beginners, but the fact is a little complicated to install if you are not familiar with Python packages and, in particular, with pip (a Python package manager). That said, it's included as standard in the new versions of Raspbian and is very suitable for Raspberry Pi projects. It's a shame that other distributions do not include Thonny in their repositories.
4. Visual Studio code
The Microsoft code editor is now a popular choice among developers
Awesome market extensions
Minimalist & # 39; zen mode & # 39;
Once the FOSS software is nemesis, Microsoft has, under Satya Nadella's stewardship, adopting a much friendlier position towards all open source things. It is possible that the company is not about to launch the source code to Visual Studio, but in 2015 it launched a source code editor, Visual Studio Code, or Code for short, and opened the kernel source. Since then, the code has become popular among developers, and it is also a good choice for your Python projects, once you have installed the Python extension.
The code has its own debugger, supports undoing and has integration with all source control tools. It also has a built-in terminal and a well-stocked expansion market (do not worry, they're free). You can also run and debug the unit tests of your project through the unittest, pytest or nose frameworks.
If all this sounds too much, it also has a & # 39; zen mode & # 39; minimalist that shows you only the file you are working on, hiding not only the Code interface, but also the rest of your desktop.
The code is highly configurable and has a settings panel that will delight a certain mentality: each section displays the corresponding section of the .json file configuration, all very well highlighted, of course.
Like Atom, the code is an Electron application, so it's cross-platform and a little bulky. Unlike Atom, it has support for Intellisense, Microsoft's own code collection. For Python, in addition to only suggesting terminations, it also provides pop-up windows on the fly that show the documentation of classes and methods.
Powerful offer with support for real-time code collaboration
Excellent for serious encoding work
Excellent support for Ruby, too
The interface is a bit busy
This powerful cross-platform IDE – which, like IDLE, bears the name of Eric Idle, is written in Python and uses the Qt library. Although Python is its focus, eric (lowercase is the expected spelling) has excellent support for Ruby and other languages as well. It is compatible with the tasks of bread and butter that we have waited for: folding of code, completion of code, correlation of keys.
But there's a lot more you'll need to use your generation of integrated (and automated) TODO lists to track. It has an integrated class browser and a powerful debugger, and thanks to its integration capability, Qt supports the creation of GUI through Qt Designer. The initial configuration screen may seem daunting, but most can be postponed until later.
Although the interface seems to be busy, there is no reason why you can not use eric as a simple code editor (or even plain text). But it really is a more serious coding: there is even a built-in hexadecimal editor, an SQL browser and an icon designer. It supports unit tests and can debug both multi-threaded and multi-threaded programs, which, as anyone who ventures into such things will testify, will generate the worst type of errors.
Supports version control of Mercurial and SVN natively, and Git support is available through a plug-in. Like Code, real-time collaboration in the code is supported. In short, if you want a Python power with many functions, eric is for you.