7 sweet Python IDEs you might have missed
- 14 August, 2019 20:00
The current state of integrated development environments for Python is an embarrassment of riches. Six products made the cut in our last rundown of the “major” IDEs, but there were many more worth noting—both full-blown development environments for Python experts and lightweight toolkits well-suited to the first-time Pythonista.
Here we zero in on seven additional Python IDEs, from the minimal to the maximal, that also should be on your radar.
Like Python’s own native IDE IDLE, Eric6 is a Python IDE written in Python, although it uses the Qt5 UI framework to provide a far more sophisticated UI than IDLE. Getting started requires some assembly, though, since Eric6 isn’t deployed like a conventional platform-native app. It’s essentially a large Python package with several weighty dependencies, such as the Python bindings for Qt5. Upshot: Getting started with Eric6 means understanding Python package management, so it isn’t likely to appeal to beginner users. That said, the installer script provides feedback so that you know which packages need to be fetched and installed to finish the setup process (PyQt5, QScintilla).
Install process aside, Eric6 is remarkably well-equipped. It has the usual utilities included in modern IDEs, such as class browsing or version control, but it also integrates support for Python-specific features like unittest, PyLint, the PyInstaller and cx_freeze application distribution system, and a built-in PyPI and Pip package management browser. New projects created in Eric6 can also be built as PyQT4/5 GUI and console applications, since the underlying libraries are already installed, although additional development tools like the Qt form designer aren’t included by default.
Billed as “the intelligent development environment for Python programmers,” Wing IDE emphasizes feature integrations specifically designed for Python users. This goes beyond refactoring functions across a codebase or working with multiple Python interpreters. It also includes detailed integration with many popular Python frameworks (Django, Zope, Plone), packages (PyQT, wxPython, PyGTK), and third-party apps (Maya, Blender). Raspberry Pi users can also use Wing IDE to do development.
Version 7 of Wing adds code quality and inspection features (both natively and via add-ons like pylint), a viewer for array data such as Pandas DataFrames and NumPy ndarrays, and a presentation mode for talks or code demos.
Wing is a commercial product, but it has two free editions with a good number of concessions to independent developers and beginners. The Wing IDE 101 edition lacks most of the advanced features of the suite, including many of the day-to-day things a developer might use (bookmarks, module browsing, refactoring), but it’s a good way for a fledgling Python dev to get started without struggling with something as underpowered as IDLE. The Personal version, also free, restores many, but not all, pro-level features. For the pro version, there’s a 30-day trial, or both perpetual and annual licensing starting at $69 per user.
Sometimes you only need so much. Pyzo is a small IDE aimed mainly at scientific computing audiences, with a small tool set: editor, interactive shell, file browser, source structure browser, and a few other amenities. It’s largely intended for on-the-fly interaction with libraries, where you type commands into Python’s REPL or execute individual files rather than do formal application development. In that sense, it’s less suited to those who want to create apps and is more for people who want to use Python as a workbench environment.
To make it easy to unpack and get going, Pyzo’s delivered as platform-native executables—no need to cobble together the runtime. It’ll work with an existing CPython runtime, but its creators recommend Continuum Analytics’s cut-down version of the Anaconda distribution, miniconda, which makes it easy to obtain packages and add-ons without undue hassle. Pyzo can also auto-detect interpreters set up with
Beginners looking to get their feet wet with Python are often steered toward IDLE, but Thonny, a small IDE geared specifically to getting beginners used to the language, is a substantially more hassle-free choice. Available for Windows, Mac, or Linux, Thonny also spares the user from having to download or configure a Python interpreter. A recent version of Python (currently, Python 3.7) is bundled with Thonny, and the IDE uses it by default out of the box. That said, you can always swap in any other Python runtime.
Thonny installs in the user’s profile directory, so doesn’t require elevated permissions to set up or use—handy for people using computers for which they don’t have admin rights. Menu commands allow you to open a command-line session with Thonny’s interpreter and package manager available as the default choices when typing “python” or “pip”. (This is a great idea.) Other nice features include a tree viewer for a script’s Abstract Syntax Tree, a sidebar for note-taking, and inspectors for objects, stack, heap, and variables in debug mode.
An independent project, Ninja-IDE is comparable to professional-level development tools like ActiveState’s Komodo IDE or PyCharm, not only in terms of developer experience, but in that its feature set was built by and for Python users. For instance, the “Preferences” dialog for Ninja-IDE has a tab devoted to the Python interpreter to be used when running programs, along with checkboxes to enable or set all the various command-line options used by the interpreter. This is tremendously handy if, like me, you forget what they are or don’t remember to set them for specific scripts. Another tab in the IDE that shows by default is Migration 2to3, so scripts written for Python 2.x can be analyzed and have suggestions made.
Microsoft Visual Studio Code
Microsoft’s simple and lean code editor gets its power from its galaxy of extensions that provide support for different languages. Python developers have a bevy of Visual Studio Code extensions, but the best place to start is the extension originally created by Don Jayamanne and now officially supported by Microsoft. It is kept current with every late-breaking version of Python, and it integrates support for all of the good things you’d want: snippets, code linting, auto-completion, refactoring, unit testing, debugging, Jupyter Notebooks, and much more.
GitHub’s Atom editor is built from some of the same pieces that power Visual Studio Code, but its biggest similarity is the design philosophy: Keep it lean, and add language-specific features through external packages. For Python users, there isn’t a single, overarching add-on such as the Microsoft-sponsored extension for Visual Studio Code. Most of the crucial pieces are in a few packages: language-python for base syntax highlighting and snippet support, python-tools for some handy functions like quick refactoring, autocomplete-python for auto-completion, and linter-flake8, linter-pep8, or linter-pycodestyle for code linting, depending on which Python package you’re using.