Elpy, the Emacs Python IDE

November 15, 2020 · View on GitHub

.. image:: https://github.com/jorgenschaefer/elpy/workflows/Tests/badge.svg?branch=master :target: https://github.com/jorgenschaefer/elpy/actions?query=workflow%3ATests

.. image:: https://readthedocs.org/projects/elpy/badge/?version=latest :target: https://elpy.readthedocs.io/en/latest/?badge=latest :alt: Documentation Status

.. image:: https://coveralls.io/repos/jorgenschaefer/elpy/badge.svg?branch=master :target: https://coveralls.io/r/jorgenschaefer/elpy?branch=master

.. image:: https://melpa.org/packages/elpy-badge.svg :target: https://melpa.org/#/elpy

.. image:: https://stable.melpa.org/packages/elpy-badge.svg :target: https://stable.melpa.org/#/elpy

========================== Elpy, the Emacs Python IDE

Elpy is an Emacs package to bring powerful Python editing to Emacs. It combines and configures a number of other packages, both written in Emacs Lisp as well as Python. Elpy is fully documented at Readthedocs_.

.. _Readthedocs: https://elpy.readthedocs.io/en/latest/index.html

Features

  • Code completion_
  • Code Navigation_
  • Interactive Python shell_
  • Virtualenv support_
  • On-the-fly syntax checking_
  • Access to documentation_
  • Debugging_
  • Testing_
  • Profiling_
  • Snippet Expansion_
  • Code hinting

.. _Code completion: https://elpy.readthedocs.io/en/latest/ide.html#completion .. _Code Navigation: https://elpy.readthedocs.io/en/latest/ide.html#navigation .. _On-the-fly syntax checking: https://elpy.readthedocs.io/en/latest/ide.html#syntax-checking .. _Interactive Python shell: https://elpy.readthedocs.io/en/latest/ide.html#interactive-python .. _Access to documentation: https://elpy.readthedocs.io/en/latest/ide.html#documentation .. _Debugging: https://elpy.readthedocs.io/en/latest/ide.html#debugging .. _Testing: https://elpy.readthedocs.io/en/latest/ide.html#testing .. _Profiling: https://elpy.readthedocs.io/en/latest/ide.html#profiling .. _Virtualenv support: https://elpy.readthedocs.io/en/latest/concepts.html#virtual-envs .. _Snippet Expansion: https://elpy.readthedocs.io/en/latest/ide.html#snippets

Installation

Elpy is available on Melpa, the most straightforward way to install it is to use use-package:

.. code-block:: elisp

(use-package elpy :ensure t :init (elpy-enable))

For other installation alternatives, see the documentation_.

.. _documentation: https://elpy.readthedocs.io/en/latest/introduction.html#installation

Quickstart

Once installed, Elpy will automatically provide code completion, syntax error highlighting and code hinting (in the modeline) for python files. Elpy offers a lot of features, but the following keybindings should be enough to get started:

  • :kbd:C-c C-c evaluates the current python script (or region if something is selected) in an interactive python shell. The python shell is automatically displayed aside of your script.
  • :kbd:C-RET evaluates the current statement (current line plus the following nested lines).
  • :kbd:C-c C-z switches between your script and the interactive shell.
  • :kbd:C-c C-d displays documentation for the thing under cursor. The documentation will pop in a different buffer, that can be closed with :kbd:q.

Please have a look at the documentation at Readthedocs_ if you want to know more about what Elpy can do.

.. _Readthedocs: https://elpy.readthedocs.io/en/latest/index.html

External resources

  • Emacs: The Best Python Editor?_ by Jon Fincher
  • Managing a Python development environment in Emacs_ by Diego Fernández Giraldo
  • Configuring GNU emacs with elpy on MacOS_ by Kenneth H. East

.. _Managing a Python development environment in Emacs: https://medium.com/analytics-vidhya/managing-a-python-development-environment-in-emacs-43897fd48c6a .. _Emacs: The Best Python Editor?: https://realpython.com/emacs-the-best-python-editor .. _Configuring GNU emacs with elpy on MacOS: https://east.fm/posts/configuring-gnu-emacs-with-elpy-on-macos/index.html#

Contact

For questions regarding Elpy, do not hesitate to open an issue on github_ or visit us on IRC, channel #emacs-elpy on irc.freenode.net.

.. _issue on github: https://github.com/jorgenschaefer/elpy/issues/new

If you would like to support this work, you can become a patreon: https://www.patreon.com/jorgenschaefer Please note that this is completely voluntary, and does not make you more important than others when it comes to issues, feature requests or anything. I appreciate donations, but do not feel compelled to spend money, and do not feel bad if you don't.