Python & Emacs, Take 3


This is the third installment of what has turned into an unofficial series posts on using Emacs for Python development (first and second posts). I probably shouldn't expect it to be the last.

At this point I use Eglot and lsp-mode pretty interchangeably. I just like both of them and it's fun to mix it up. I also continue to use pyenv for managing python versions and virtual environments and pyvenv for handling them inside of Emacs.

What has triggered writing a new post is the development of a new Python language server: python-lsp-server (or pylsp). The old Palantir python-language-server (pyls) project is no longer maintained. Both Eglot and lsp-mode now support pylsp (lsp-mode PR and Eglot commit).

Beyond pylsp, there are a number of other Python language servers that I've played around with:

It's both a blessing and a curse to have all of these options!