Contents

The Best Python IDEs and Editors for Mac

Tools for a Python Developer Working on Apple Mac

“Tools are the skills, tools, and any other means necessary to do one’s job well. “ - from the definition in Collins Dictionary.

There are several basic tools (applications) that a programmer uses all the time - a browser, a terminal, and a code editor or integrated development environment (IDE). Choosing the right application is always important because the time you spend using these tools justifies the time you spend choosing them.

This is a great time to be a developer, as there is a wide variety of applications available. Let’s take a look at the best text editors and full-featured IDEs for the Python developer working on an Apple Mac.

Console Editors

Let’s start with the most basic tool available on any platform and at any time - the console. You can use any standard one, but I prefer the best, in my opinion, implementation - this stable, fast and convenient application iTerm2. The program is completely free and its source code can be found at GitHub and see here for functional highlights and screenshots.

Alternatively, you can use another free application - Alacritty, a fairly fast, cross-platform terminal emulator that uses the GPU to speed up its operation (OpenGL on Rust). Alacritty supports macOS, Linux, BSD, and Windows.

Once you’ve decided on a console, all that’s left to do is add any of the following editors to start working on the code for your genius project:

Nano

Nano editor screenshot

The name stands for Nano’s ANOther editor. It was developed as a free replacement for the Pico text editor. The latter was part of the famous Pine mail package of its time, created at the University of Washington.

Nano is a very simple, with basic functionality, but nevertheless quite workable tool for code editing. It will be hard to use it for big and serious work, but it can be good for writing simple scripts and programs.

Micro

Micro editor screenshot

A modern and intuitive text editor that takes full advantage of today’s terminals. Micro is meant to be the successor of the Nano editor, being easy to install and use, but at the same time pleasant, powerful and extensible thanks to plugins.

The Micro is perfectly configurable, supports multi-window interface, mouse and keyboard shortcuts. It’s already a pretty advanced tool in which you can do normal projects.

Vi/Vim

Vim editor screenshot

An all-time classic, Vim is a mega-configurable text editor designed to efficiently create and edit everything from simple documents to complex project code. It is installed by default on most UNIX systems, including macOS. Vim is very stable and is constantly being improved.

You can build a complete development environment (IDE) based on Vim if you want. The only downside is that it will take you a significant amount of time and effort to learn how to use it effectively in the initial stages.

Comparing Vim and Neovim

Neovim

NeoVim editor screenshot

If you prefer modern technology, try this hyper-expandable text editor based on Vim. It is almost fully compatible with Vim and the Vimscript language. Neovim emerged as an attempt to make Vim more accessible and open to new technologies.

You can find a short comparison to see which version (Vim or Neovim) is better for you here. Both Vim and Neovim will require some effort on your part to learn and configure (options, themes, plugins) at the initial stage.

Text Editors

There are many excellent text editors available today that, in addition to the obvious text editing capabilities, allow you to create a complete Python development system using external plug-ins.

GNU Emacs

Emacs is one of the oldest text editors. Its first version was written back in the mid-1970s by Richard Stallman. Emacs is basically an entire environment that can be customized for any task - text editing, mail, music, web browsing, etc., thanks to its built-in Lisp interpreter.

As a text editor, it once rivaled Vim in popularity, but now it’s more of an enthusiast’s choice. The “Emacs or Vim” debate was one of the first “holy wars” fought in Usenet groups. There are a lot of comparisons, but if you want to keep it short, read this sensible response to StackOverflow.

Setting up Emacs for Python development is a separate and very fascinating topic. Since it’s quite lengthy, I’ll just recommend a good article - Emacs: The Best Python Editor and a video - Emacs IDE: Configuration for Python Development.

TextMate

Pretty powerful and customizable text editor with support for a large number of different programming languages and open source. TextMate uses bundles to configure and work with various languages, markup systems, workflows, and more. It supports version control, snippets, macros, and other features.

Python support in TextMate is enabled by default. To control this, simply open the application settings and look for the Python package in the Bundles tab. It should be enabled. You can also find some tips for macOS on the developers blog.

Atom

Atom is such a specialized version of Chromium, developed by GitHub, which is a text editor in a browser. Each Atom window is essentially a locally displayed web page. This gives a lot of flexibility (and, of course, some limitations).

The developers present it as a “hackable text editor for the 21st Century”, which means that you can change almost any part of it. There is a whole universe of packages that extends Atom’s functionality and allows you to create almost anything you need.

One of the interesting features of Atom is that it supports real-time code sharing using P2P WebRTC (with encryption). And, of course, it has almost native integration with GitHub :).

A special package ide-python, turns Atom into a Python IDE.

On June 8, 2022, we announced that we will sunset Atom and archive all projects under the organization on December 15, 2022.

If I’m using Atom, what changes can I expect after the sunset? Pre-built Atom binaries can continue to downloaded from the atom repository releases Atom package management will stop working No more security updates Teletype will no longer work Deprecated redirects that supported downloading Electron symbols and headers will no longer work

Kate

Kate or KDE Advanced Text Editor is a fairly powerful text editor that allows you to work successfully even on complex projects. It supports over 300 languages, syntax highlighting, advanced file management, text search and replacement, and plugin support. Just recently (in March 2022), it has significantly updated its user interface for the better.

Nova

An editor for programmers, created using Apple technology and only for macOS. It is relatively new, fast and flexible. It includes almost all the tools you need - autocomplete, multiple cursor, built-in language support, including Python. Nova’s functionality can be extended using APIs and plugins.

There’s a built-in local and remote file manager, ftp client, project search, reports, and other modern technology including versioning (Git). Nova supports scripts that can be used to write frequently used scenarios such as starting a local server, opening an address in a browser, etc.

The interface looks very familiar to anyone who works on macOS. The design theme is easy to customize to your liking.

  • Price: $99 for the first year; $49 for each subsequent year.
  • Platforms: Mac only
  • Website: https://nova.app/

Sublime Text

A functional and cross-platform text editor designed for those who need a minimalist and efficient tool. Works quickly and stably, even with very large texts and projects. It is an application with a whole ecosystem of plugins that allows you to create a mighty development environment.

Setting up Sublime Text for a specific purpose can be quite fascinating. So for now, I’ll just recommend an excellent article on the subject - Setting up Sublime Text 3 for Python development.

Of all the above options, I prefer Sublime Text for its stable performance and perfect balance between ease of use, features, and performance.

Jupyter Notebooks

This is an interactive computing environment where you can combine code execution, rich text, math, graphics, and rich media. There are several applications that allow you to develop full projects interactively.

Jupyter

The Jupyter project exists to develop open-source software, open standards, and services for interactive computing in dozens of programming languages, including Python. You can either install the full JupyterLab, an interactive web-based development environment for Jupyter notebooks, code and data, or just Jupyter Notebook, which lets you create and share documents with live code, equations, visualizations and narrative text. There’s even Voilà, which helps you transfer information by turning Jupyter Notebook into a separate web application that you can share.

Pineapple

Pineapple is a standalone IPython application for Mac that requires no other components to run. Powerful enough for beginners, simple enough for experienced users. Minimum version contains the necessary components such as numpy and matplotlib, as well as the complete standard Python library. Full version includes scipy, pandas, bokeh, ggplot, Pillow, and more, for a total of 63 packages.

Nteract

The nteract desktop application allows you to view, edit and publish notebooks from your desktop. It’s cross-platform, so you can use it on your favorite operating system. The desktop application is a great tool for beginners and experienced notebook users alike.

Although Jupiter Notebook remains the most popular choice, I prefer standalone nteract because there have been many instances where Jupyter Notebook Web Notebook hangs/freezes due to a huge amount of calculations or a bug in the code and I have had to force quit the entire Chrome app with multiple tabs in it. When nteract hangs for the same reasons, I only reload it, keeping all my precious document tabs and StackOverflow responses open.

IDE stands for Integrated Development Environment.

Essentially, it is a collection of different tools in one package that help the developer perform and/or automate many standard tasks. They can include data analysis and preprocessing, integration of different sources, testing, validation, code benchmarking and performance evaluation, updating libraries and packages used in the project, etc. IDEs were designed to simplify the development process, reduce coding and repetitive manual tasks.

Listed below are the most popular IDEs used by Python developers working on macOS.

Thonny

Thonny is an IDE for learning and teaching programming, specifically designed for beginner Pythonista scripting environments. In Thonny, you can see how your code affects Python variables, for example. It also has a very simple debugger. It’s developed at the University of Tartu, and it’s downloadable for Windows, Linux, and Mac.

CodeRunner

Lightweight multilingual programming editor for macOS. CodeRunner can run code in 25 languages, including Python, out of the box. It can also work with multi-file projects. It has all the basic features of a normal development environment: code completion for most languages, including fuzzy search, highlight tabs, and documentation snippets. CodeRunner has a built-in debugger, you just set breakpoints and review your code.

🔥 The best part: CodeRunner is included into the cool Setapp collection. You can use any or all of the 230+ apps in this collection, including CodeRunner, for a small fixed monthly fee. They are all yours, fully unlocked.

Spyder

Spyder is an open-source IDE commonly used for scientific development. The easiest way to get started with Spyder is to install the Anaconda distribution. If you don’t know, Anaconda is a popular distribution for data science and machine learning. The Anaconda distribution includes hundreds of packages, including NumPy, Pandas, scikit-learn, matplotlib, and so on. Spyder has some significant features, such as autocompletion, debugging, and an iPython shell. However, it lacks features compared to PyCharm.

VS Code

Visual Studio Code (VS Code) is a free open source IDE created by Microsoft that can be used for Python development. You can add extensions to create a Python development environment according to your VS Code needs.

It provides features such as intelligent code completion, linking to identify potential bugs, debugging, unit testing, and so on. VS Code is a lightweight and powerful tool. That is why it is becoming popular among Python developers.

There is also the VSCodium project, a freely licensed distribution of Microsoft’s VSCode editor without built-in telemetry. You can read more about it here.

PyCharm

PyCharm is an IDE for professional developers. It was created by JetBrains, a company known for creating many other great software development tools. There are two versions of PyCharm:

  • Community - free open-source version, lightweight, good if you’re just starting out.

  • Professional - paid version, full-featured IDE with remote development support (you can edit code directly on a remote server), sophisticated debugging and profiling and many other features.

    PyCharm provides everything a good IDE should provide: code completion, code inspection, error highlighting and fixing, debugging, version control system, and code refactoring. All these features come out of the box.

  • Price: Free

  • Platforms: Mac, Windows, Linux

  • Web site: https://www.jetbrains.com/pycharm/

I hope this review will help you choose the most suitable option and remember that a tool is just a tool ;)

I wish you good luck with your projects!