No description
  • Emacs Lisp 78.2%
  • Python 19.8%
  • YASnippet 1.8%
  • Shell 0.2%
Find a file
Gopar 0b381f5596
Merge pull request #2057 from rpgoldman/master
A number of additional fixes for newer python versions
2025-04-04 16:49:23 -07:00
.github Add new Emacs and Python versions. 2024-07-17 17:22:42 -05:00
docs Replace find-tag-marker-ring with xref-push-marker-stack. 2022-06-25 11:55:18 +10:00
elpy Additional packaging version information. 2025-04-04 17:54:54 -05:00
scripts fixes https://github.com/jorgenschaefer/elpy/issues/1940 and fixes tests when using python3 2021-10-13 20:53:46 -06:00
snippets Add yasnippet snippets for ts-mode 2023-08-03 11:22:45 +02:00
test fix(rpc): add support for Python 3.12 and later, where the 'distutils' module has been removed. By installing 'setuptools' the currently missing dependencies will be added 2024-12-27 18:06:02 +01:00
.bumpversion.cfg Bump version: 1.34.0 → 1.35.0 2020-11-15 18:08:11 +01:00
.coveragerc Add coveralls badge. 2014-06-27 00:51:24 +02:00
.gitignore Added yapf as another formatter 2015-11-06 23:31:00 +08:00
Cask Update ffip-project-search arguments for ffip >= 6.0.0 2021-01-28 22:43:00 -05:00
CONTRIBUTING.rst Switch URLs to readthedocs.io 2016-04-28 09:57:55 +02:00
elpy-django.el Fix typo in docstring 2021-02-05 15:20:15 +01:00
elpy-profile.el Allow to run tests without using virtualenvs (#1689) 2019-10-11 13:30:21 +02:00
elpy-refactor.el feat(elpy-refactor): use the symbol to be renamed for initial input when prompting for new name 2021-05-25 15:29:44 +02:00
elpy-rpc.el fix(rpc): add support for Python 3.12 and later, where the 'distutils' module has been removed. By installing 'setuptools' the currently missing dependencies will be added 2024-12-27 18:06:02 +01:00
elpy-shell.el Unnecessary line deletion 2023-06-28 16:27:52 +03:00
elpy.el Fix elpy-config--get-config. 2025-04-04 15:36:21 -05:00
LICENSE Add LICENSE file. 2013-01-28 20:33:15 +01:00
MANIFEST.in Fix MANIFEST.in 2013-09-20 18:56:01 +02:00
README.rst Update README.rst 2021-10-16 12:09:52 +02:00
RELEASE.txt Use ./scripts/release to release the project 2018-03-30 10:42:18 +00:00
requirements-dev.txt Add toml to dev requirements 2023-07-19 08:16:45 -05:00
requirements-dev2.txt Update testing scripts 2019-09-08 17:05:44 +02:00
requirements-rpc.txt Additional packaging version information. 2025-04-04 17:54:54 -05:00
requirements-rpc3.6.txt Simplified test suite requirements 2021-06-30 20:37:23 +02:00
requirements.txt Simplified test suite requirements 2021-06-30 20:37:23 +02:00
setup.cfg Fix MANIFEST.in 2013-09-20 18:56:01 +02:00
setup.py Remove importmagic 2017-12-10 12:29:07 -08:00

.. 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

IMPORTANT NOTE: Looking for a maintainer
========================================

I find myself (@galaunay, current maintainer), unable to maintain Elpy at the moment, and probably for a while.
If you are interested in getting involved in Elpy, please contact me by mail, **the project definitely needs you** !

In the meantime, I will keep an eye on the PRs to integrate any fix and/or new features proposed, but I will definitely not be able to treat the issues in a satisfying manner.
If you are stuck with an issue, please have a look at the `documentation`_, there is a lot of answers there. 
@gfederix also made some bug fixing in his `fork`_, so you can try using this version of Elpy.

.. _documentation: https://elpy.readthedocs.io/en/latest/index.html
.. _fork: https://github.com/gfederix/elpy

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 section `Installation`_.

.. _Installation: 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