Full Python IDE in Emacs
There are quite a few options to turn Emacs into a Python IDE.
elpy, now unmaintained, was a popular but heavy do-it-all package until LSP (Language Server Protocol) became the norm.
lsp-mode (and the optional lsp-ui for a more exciting interface) is a good option to get code completion, debugging, code navigation, and many helpers. To use it with Python, one can use lsp-pyright which brings the static type checkers for Python pyright or basedpyright.
Since version 29 however, Emacs comes with a built-in LSP client: eglot (Emacs Polyglot). And when it comes to Python type checkers and language servers, ty—written in Rust—is currently by far the fastest. Good news: ty works very well with eglot.
You can add to this the modern and ultra fast Python linter and code formatter ruff (also written in Rust of course and much faster than flake8, black, etc.). ruff also runs nicely in eglot.
Finally, on the REPL side, py-vterm-interaction.el runs your favourite Python shell (Python REPL, ipython, ptpython, or ptipython) in a much improved Emacs terminal emulator.
In this webinar, I will demo running ty and ruff in eglot and give tips on how to set it all up with flycheck (nicely styled with flyover) and eldoc-box to tame eldoc.
Coming up in fall 2026.