Using Python with Emacs †
Back
Introduction †
In this page, I will explain my emacs environment for programing and interactive session with Python. I put emphasis on my because this may not be the most elegant solution (and probably it isn't). The effectiveness of a human interface depends a lot on the user's preference. Therefore, the example shown here strongly reflects my personal preferences. You may want to change details of the behavior. You can do so but you have to know a bit about Emacs Lisp. Since I don't have a time to explain Emacs Lisp here, I will just refer you to two nice documents for learning Emacs Lisp, An Introduction to Programming in Emacs Lisp and GNU Emacs Lisp Reference Manual.
My computer environment †
Before going into the details of the emacs setting, I will list my computer environment as a reference.
Hardware | PC (Sony VAIO type Z) |
OS | Ubuntu 9.10 (x86-64) |
Additional packages †
In addition to Emacs, you need to install several packages.
I took most of the information from here.
- python-mode.el -- This is the main guy. It defines a major mode for python editing and interactive execution. We will add some tweaks to this mode later. It is a part of the python distribution. You can download it also from https://launchpad.net/python-mode. On Ubuntu, it is in the python-mode package.
- IPython -- IPython is a better interactive shell for Python. It has a lot more functionalities than the standard python shell. We will use IPython as a Python shell in Emacs. You should check these video tutorials for IPython as these are damn good. On Ubuntu, you can just download and install ipython package.
- Folding-mode -- Folding mode is a minor mode to allow folding a region of Emacs buffer. I used this to implement cells. You can get more information about folding-mode from here
- ropemacs -- Rope is a refactoring library for Python. ropemacs enables you to use rope functionalities from emacs. ropemacs can be obtained from http://rope.sourceforge.net/ropemacs.html. You also need rope and pymacs to use ropemacs.
- pylint -- pylint is a grammar checker for python. To use it from emacs, you need epylint script, which may be provided with pylint. If not, get it from here.
.emacs file †
Once you have installed the above packages, edit your .emacs file.
Here is an example of .emacs file. You can merge this file into your .emacs file. Please read the comments in the file to see what is going on.