2010-08-22 4 views
1

나는 ipython 셸 내부에서 작업하고 있으며 종종 구성중인 기능을 포함하는 스크립트 파일을 다시로드해야합니다. 내 main.py 내부파이썬 셸 및 execfile 범위

내가 가진 :

데프 myreload() : execfile ("main.py") execfile ("otherfile.py")

호출 myreload()를하면 잘 작동 나는 execyfile 명령을 동일한 ipython 세션에서 이미 실행했다.

그러나 어떤 이유로 세션이 신선하고 execfile ("main.py")을 방금 호출 한 경우 myreload()는 실제로 otherfile.py 내부에서 함수를 만들지 않습니다. 그것은 비록 어떤 오류를 throw하지 않습니다.

아이디어가 있으십니까?

답변

2

함수는 새 범위를 만듭니다. execfile()은 현재 범위에서 스크립트를 실행합니다. 당신이하는 일은 효과가 없을 것입니다. 대한

%run 

%edit 

확인 도움말 : 당신이 ipython 의 실제 올바른 사용법을 배우고 추구하는 경우

1

(즉, 대화 형 모드에서), 당신은 같은 마법 명령을 사용한다 그 기능은 %run?입니다. 이는 명시적인 예를 제공합니다.

http://ipython.org/ipython-doc/stable/interactive/tutorial.html 또한

+0

파이썬 모듈 http://stackoverflow.com/questions/437589/how-do-i-unload-reload-a-python-module?rq=1을 다시로드하는 방법을 확인 참조 –