2011년 5월 16일 월요일

[Emacs/Python] Flymake 를 Python Mode 에서도 사용해보자.

flymake-mode를 사용할 때는 Makefile에 문법 체크용 코드를 추가해 사용해야 한다. 하지만 Python 코드들은 대체로 Makefile이 없을 뿐 더러 컴파일 할 필요성 까지 없다보니 뭔가 맞지 않는 것 같다. 그러니 다른 방법으로 flymake를 사용해야 한다.

Python의 경우 문법 체크를 할 수 있는 몇 가지 도구들이 존재하는데 그 중에 pyflakes 라는게 있다. (pylint 같은 것도 될지도 모르겠지만 안해봐서 모르겠...)

http://pypi.python.org/pypi/pyflakes

위 URL에서 다운받아 설치할 수도 있지만, 리눅스나 Mac OS X의 경우 easy_install을 이용하면 쉽게 설치가 가능하다.
sudo easy_install pyflakes
이 외에도 Mac OS X의 경우 MacPort를 이용해 설치 할 수도 있다. (단지, 현재 MacPort 저장소에는 Python 2.7용 pyflakes가 등록되어 있지 않다.)

pyflakes를 이용해서 flymake의 환경을 만들 수 있다. 다음 코드를 설정에 추가한다.
;; flymake using pyflakes
(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 "pyflakes" (list local-file)))) 

  (add-to-list 'flymake-allowed-file-name-masks 
               '("\\.py\\'" flymake-pyflakes-init))) 

(add-hook 'python-mode-hook 'flymake-find-file-hook)
python-mode로 진입하게 되면, 즉 .py 파일을 열게 되면 flymake가 pyflakes를 이용하도록 설정된다.

자 이제 신나게 Python 코딩을...

댓글 없음 :