There are a number of python modes for Emacs. fgallina's python.el is the python.el included in Emacs 24.2 and onwards.
rope & ropemacs
rope is a library for refactoring and manipulating Python code. ropemacs is an Emacs interface to the rope library.
To run pep8, pylint, pyflakes and unit-tests (with nose), you can be interested in using flymake-python.
Pymacs is an Emacs extension that enables the use of Python alongside with Emacs Lisp.
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)
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
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.
Elpy is a collection of elisp packages for Python too.
You'll be certainly interested in :
Magit, a git interface
Emacs + git is magic : magit
Yasnippet, a template system
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.