2013-02-07 1 views
2

python-shell-send-buffer (C-C C-c)을 사용하면 파이썬 셸의 주 버퍼에서 변경된 사항을 볼 수 있습니다.Emacs의 python-shell-send-buffer에서 파이썬 모듈을 다시로드하는 방법은 무엇입니까?

그러나 내 버퍼에 모듈을 가져온 경우 다시로드되지 않습니다. 어떻게 고칠 수 있습니까? 부여 됨으로써

:
main.py :

from functions import foo 
print 'a' 

functions.py : 그래서 foo()을 변경하고 main.py에 python-shell-send-buffer을 실행하면

def foo(): 
    print 'bcdef' 

- 그것은 준다 나 같은 ~ foo() 처음 읽는 분

a 
bcdef # never changed 

답변

0

이렇게하려면 ipython을 사용하십시오.

구성 "DEV"(또는 무엇이든) 만들기 :

ipython profile create dev 
[ProfileCreate] Generating default config file: u'/home/username/.config/ipython/profile_dev/ipython_config.py' 

을 그리고이 라인 "ipython_config.py"추가 : 파이썬 모드에 대한 이맥스 설정에서

c.InteractiveShellApp.extensions = ['autoreload'] 
c.InteractiveShellApp.exec_lines = ['%autoreload 2'] 

그런 설정 변수를 :

(setq 
    python-shell-interpreter "ipython" 
    python-shell-interpreter-args "--profile=dev" 
) 

이 구성으로 시작한 IPython은 코드를 다시 보내면 모듈을 다시로드합니다.

+0

'C-c C-p'를 누르면 콘솔이 열리고 다음과 같은 오류가 발생합니다 :'IPython profile : dev ^ [[6n^[JIn [1] :^[[8D^[[8C'. 아마도'% autoreload 2'와 관련이 있습니다.'%'심볼과'2' 심볼의 의미는 무엇입니까? – Nisba

관련 문제