Drkcore

13 04 2012 Python Emacs Tweet

EmacsのPython開発環境を整えた

macbookを買ってからずっとcarbon emacsを使っていたんだけど、思うところあって23系に変更した。

ここを参考にしながらソースコードを落としてきてインストールした。

python開発環境はemacs-for-pythonがよさそうだったんだけど自分の環境ではpyflakesが動かなかったので、深入りする前にやめた。今度また時間があるときにチャレンジする。

結局以下のサイトを参考にしてflymake, pyflakes, pep8, virtualenv, noseが動くようにしておいた。

emacs

  • flymake+pyflakes+pep8
  • virturalenv
  • nose

出来上がったelisp

(add-hook 'python-mode-hook
                   '(lambda()
                        (setq indent-tabs-mode nil)
                        (setq indent-level 4)
                        (setq python-indent 4)
                        (setq tab-width 4)))

;; flymake+pyflakes+pep8
; http://d.hatena.ne.jp/cou929_la/20110525/1306321857

(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 (expand-file-name "~/bin/pycheckers")  (list local-file))))
  (add-to-list 'flymake-allowed-file-name-masks
               '("\\.py\\'" flymake-pyflakes-init)))

(load-library "flymake-cursor")

;; virtualenv
; https://github.com/aculich/virtualenv.el
(require 'virtualenv)

;; nose.el
; https://bitbucket.org/durin42/nosemacs/src/9302529e68be/nose.el
(require 'nose)
(add-hook 'python-mode-hook
          (lambda ()
            (local-set-key "\C-ca" 'nosetests-all)
            (local-set-key "\C-cm" 'nosetests-module)
            (local-set-key "\C-c." 'nosetests-one)
            (local-set-key "\C-cpa" 'nosetests-pdb-all)
            (local-set-key "\C-cpm" 'nosetests-pdb-module)
            (local-set-key "\C-cp." 'nosetests-pdb-one)))

M-x virtualenv-workonでvirtualenvが使えるうえにemacsからnosetestsをはしらせることが出来るので快適だ。

ProductName エキスパートPythonプログラミング
Tarek Ziade
アスキー・メディアワークス / 3780円 ( 2010-05-28 )


About

  • もう5年目(wishlistありマス♡)
  • 最近はPythonとDeepLearning
  • 日本酒自粛中
  • ドラムンベースからミニマルまで
  • ポケモンGOゆるめ

Tag

Python Deep Learning javascript chemoinformatics Emacs sake and more...

Ad

© kzfm 2003-2021