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.
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
Installation
Elpy is available on Melpa, the most straightforward way to install it is to use use-package:
(use-package elpy
:ensure t
:init
(elpy-enable))
For other installation alternatives, see the documentation.
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:
- 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.
- C-RET evaluates the current statement (current line plus the following nested lines).
- C-c C-z switches between your script and the interactive shell.
- C-c C-d displays documentation for the thing under cursor. The documentation will pop in a different buffer, that can be closed with q.
Please have a look at the documentation at Readthedocs if you want to know more about what Elpy can do.
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
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
.
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.