Python

From WikEmacs
Revision as of 12:25, 24 May 2013 by Elvince (talk | contribs) (Section "all in one" and a word about elpy)
Jump to navigation Jump to search

Default modes

There are a number of python modes for Emacs. fgallina's python.el is the python.el included in Emacs 24.2 and onwards.

External extensions

rope & ropemacs

rope is a library for refactoring and manipulating Python code. ropemacs is an Emacs interface to the rope library.

rope homepage

ropemacs homepage

Flymake

flymake is a on-the-fly syntax checker for Emacs. We can use it alongside with flyspell.

To run pep8, pylint, pyflakes and unit-tests (with nose), you can be interested in using flymake-python.

Pymacs

Pymacs is an Emacs extension that enables the use of Python alongside with Emacs Lisp.

Pymacs homepage


Ipdb, ipython debugger

If you call ipdb, the execution will stop and give a nice ipython-looking prompt. Just add `import ipdb; ipdb.set_trace()`

You can use the following to highlight this line, and not forget it :

; Highlight the call to ipdb
; src http://pedrokroger.com/2010/07/configuring-emacs-as-a-python-ide-2/
(defun annotate-pdb ()
  (interactive)
  (highlight-lines-matching-regexp "import ipdb")
  (highlight-lines-matching-regexp "ipdb.set_trace()"))
(add-hook 'python-mode-hook 'annotate-pdb)

pdb track

If you use emacs-for-python given above, you can track your source code while debugging with pdbtrack.

A tool to use in a non-emacs terminal would be pdbpp

All-in-one solutions

emacs-for-python

emacs-for-python is a bundle of the above modes (and more), and it's an easy way to turn Emacs into a Python IDE.

emacs-for-python at github

Elpy

Elpy is a collection of elisp packages for Python too.

https://github.com/jorgenschaefer/elpy/wiki/Features


See also

You'll be certainly interested in :

Magit, a git interface

Emacs + git is magic : magit

Yasnippet, a template system

yasnippet

ELPA packages

If you're running Emacs 24, check out some ELPA packages:

M-x list-packages
and see flymake-pyhon-pyflakes, flymake-shell, virtualenv, abl-mode (a python TDD minor-mode), jedi (a python auto-completion for emacs), nose (easy python test-running in emacs), pyregexp, python-magic and more.