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-cevaluates 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-RETevaluates the current statement (current line plus the following nested lines). - :kbd:
C-c C-zswitches between your script and the interactive shell. - :kbd:
C-c C-ddisplays 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 FincherManaging a Python development environment in Emacs_ by Diego Fernández GiraldoConfiguring 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.