Python3のオレオレEmacs環境構築

EmacsでPython3を快適に使う環境構築についてです(ウロ覚えなところが多々ありますが)。

まずpipで必要なものをインストールしておきます。

$ pip3 install virtualenv
$ pip3 install pyflakes
$ pip3 install pep8
$ pip3 install nose

(上記 pip3 はsudo pip3 のエイリアスになってます)。

その後、Emacsで M-x list-packages を行い
flymake,flymake-python-pyflakes,jedi,python-mode,python-pep8,yasnippet
などをインストールしておきます。

jediについては下記の準備が必要になります。
qiita.com
jediを導入することでいい感じに補完してくれるようになります。

pythonの設定その1(jedi)

(add-hook 'python-mode-hook 'jedi:setup)
(setq jedi:complete-on-dot t)

pythonの設定その2(flymake)

コーディングしながらエラーとコーディング規約のチェックを行います。

;; http://qiita.com/ynakayama/items/e5ec9b53ae6eeec4fa6e 参考
;; http://d.hatena.ne.jp/cou929_la/20110525/1306321857 参考

;;; flymake for python
(add-hook 'find-file-hook 'flymake-find-file-hook)
(when (load "flymake" t)
  (defun flymake-pyflakes-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 "pychecker"  (list local-file))))
      (list "pychk"  (list local-file))))
  (add-to-list 'flymake-allowed-file-name-masks
               '("\\.py\\'" flymake-pyflakes-init)))
(load-library "flymake-cursor")

上記のemacs-lisp内で出てくるpychkというコマンドはpep8とpyflakesを一緒に呼び出すようまとめたシェルスクリプトです。
参考URLはlisp内に。

#!/bin/bash

setup_environment() {
    PYTHON_PATH=/usr/local/bin/
}

setup_environment
which $PYTHON_PATH/pyflakes > /dev/null || exit 254
which $PYTHON_PATH/pep8 > /dev/null || exit 254
$PYTHON_PATH/pyflakes $*
$PYTHON_PATH/pep8 --ignore=$IGNORE_ERRORS --repeat $*
exit 0

noseについては現在勉強中で、ユニットテスト辺りを軽くできそうなのでちょっと試してるところです。
色んなサイトみるかぎり

$ nosetests

でそれっぽいテストを自動で実行してくれるようですが僕の環境ではうまくいかなかったので

$ nosetests test_*.py

で動かしてます。