EmacsをPython用IDEとしてセットアップ

1. python-mode.elをインストール
ダウンロード先はこちら↓
https://launchpad.net/python-mode

$ wget http://launchpad.net/python-mode/trunk/6.0.2/+download/python-mode.el-6.0.2.tar.gz
$ tar zxvf python-mode.el-6.0.2.tar.gz
$ cd python-mode.el-6.0.2
$ cp python-mode.el $HOME/.emacs.d/

.emacsファイルに下記を追記

(add-to-list `load-path "~/.emacs.d/")
(require 'python-mode)
(add-to-list 'auto-mode-alist '("\\.py\\'" . python-mode))

2. ipythonをインストール

$ sudo apt-get install ipython
$ wget http://ipython.scipy.org/dist/ipython.el
$ cp ipython.el $HOME/.emacs.d


3. ipython-mode.elをインストール

$ wget http://ipython.scipy.org/dist/ipython.el
$ cp ipython.el $HOME/.emacs.d/

.emacsファイルに下記を追記

(setq python-python-command "/usr/bin/ipython")
(require `ipython)

※注意
C-c !だと普通にPython Shellが起動するので、M-x python-shellを実行しないとemacs内でipythonは実行されません。

4. pylookupをインストール

$ apt-get install python2.6-doc


5. autopairをインストール
autopair.elをダウンロード

$ wget http://autopair.googlecode.com/svn/trunk/autopair.el
$ cp autopair.el > $HOME/.emacs.d/

.emacsファイルに下記を追記

(autoload 'autopair-global-mode "autopair" nil t)
(autopair-global-mode)

(add-hook 'python-mode-hook
          #'(lambda ()
              (push '(?' . ?')
                    (getf autopair-extra-pairs :code))
              (setq autopair-handle-action-fns
                    (list #'autopair-default-handle-action
                          #'autopair-python-triple-quote-action))))


6. pep8とpylintをインストール

$ sudo apt-get install pylint pep8
$ wget http://gist.github.com/raw/302847/3331473995b55cc578e7d63dd82474749367c29c/python-pep8.el
$ cp python-pep8.e. $HOME/.emacs.d/
$ wget http://gist.github.com/raw/302848/60961ad1134e7bec5d836857fb67109245548dad/python-pylint.el
$ cp python-pylint.el /home/zuzu/.emacs.d/

.emacsファイルに下記を追記

(require 'python-pep8)
(require 'python-pylint)
(add-hook 'before-save-hook 'delete-trailing-whitespace)


7. ipdbをインストール

$ sudo easy_install ipdb


8. Yasnippetをインストール

$ wget http://yasnippet.googlecode.com/files/yasnippet-bundle-0.6.1c.el.tgz
$ tar zxvf yasnippet-bundle-0.6.1c.el.tgz
$ cp yasnippet-bundle.el $HOME/.emacs.d/
$ mkdir $HOME/.emacs.d/my-snippets

.emacsファイルに下記を追記

(require 'yasnippet-bundle)
(yas/initialize)
(yas/load-directory "~/.emacs.d/my-snippets/")

9. pyflakesをインストール

$ sudo apt-get install pyflakes

.emacsファイルに下記を追記

(defun flymake-python-init ()
  (let* ((temp-file (flymake-init-create-temp-buffer-copy
                     'flymake-create-temp-inplace))
         (local-file (file-relative-name
                      temp-file
                      (file-name-directory buffer-file-name))))
    (list "pyflakes" (list local-file))))
 
(defconst flymake-allowed-python-file-name-masks '(("\\.py$" flymake-python-init)))
(defvar flymake-python-err-line-patterns '(("\\(.*\\):\\([0-9]+\\):\\(.*\\)" 1 2 nil 3)))
 
(defun flymake-python-load ()
  (interactive)
  (defadvice flymake-post-syntax-check (before flymake-force-check-was-interrupted)
    (setq flymake-check-was-interrupted t))
  (ad-activate 'flymake-post-syntax-check)
  (setq flymake-allowed-file-name-masks (append flymake-allowed-file-name-masks flymake-allowed-python-file-name-masks))
  (setq flymake-err-line-patterns flymake-python-err-line-patterns)
  (flymake-mode t))
(add-hook 'python-mode-hook '(lambda () (flymake-python-load)))

(defun next-flymake-error ()
  (interactive)
  (flymake-goto-next-error)
  (let ((err (get-char-property (point) 'help-echo)))
    (when err
      (message err))))
(global-set-key "\C-c e" 'next-flymake-error)

参考URL
Configuring Emacs as a Python IDE