2014-09-16 2 views
0

% run을 사용하여 ipython 콘솔 (노트가 아닌) 내부에서 파이썬 스크립트를 실행할 수 있습니다. 그러나 스크립트를 실행하고 스크립트의 각 줄을 ipython 입력의 한 셀로로드하고 실행할 수있는 방법이 있습니까? 예 : 스크립트 인 경우 :ipython에서 파이썬 스크립트를 ipython 셀로 로딩

if a == b: 
    print 2*a 

if a == 2*b: 
    print a 

그런 다음 스크립트과 같이로드 (및 실행)해야한다 ipython의 내부 :

In [1]: if a == b: 
    ...:  print 2*a 
    ...: 

In [2]: if a == 2*b: 
    ...:  print a 
    ...: 

난이도 가능하다면 모르겠지만 만약 그렇다면, 그것을 스크립트를로드 한 다음 실행하려는 코드 부분을 실행할 수 있으므로 정말 도움이 될 것입니다. 후속 질문은 가져온 모듈의 소스 코드를 재귀 적으로로드 할 수 있는지 여부입니다 (디버거 내부에서 스테핑처럼). 이렇게하면 ipython 자체에서 코드를 처음부터 실행하지 않고도 개발하고 테스트 할 수 있습니다 (ipython은 셀당 상태를 저장하므로).

+3

을 시도 할 수 있습니다. 내 $ 0.02 : 일반적으로 iPython 셀에서 개발 한 코드가 작동하면 독립형 스크립트로 이동합니다. – tmthydvnprt

답변

0

예, 저는 this question이 답변을 제공한다고 생각합니다. 요약하면 마법 명령 %load을 사용하려고합니다.

이 포함 된 셀 실행하면 :

%load filename.py 

filename.py의 내용이 다음 셀에로드됩니다. 평소처럼 편집하고 실행할 수 있습니다.

1

당신은 당신이 %의 cpaste를 사용 ipython에 코드를 붙여 복사 할 수 있습니다, 다른 옵션도 있습니다
!python filename.py

, 일 다음 시도 할 수 및 최종 CTRL + D에
%cpaste
에서 종료 ipython에서
%edit
는 편집 모드 에서 종료 위의 파일 사용 :q에 기록 된 라인의 목록을 실행 코드를 입력 할 수 있으며 편집 모드에서 종료 한 후 /tmp/ipython_edit_3xhsby0h/ipython_edit_*.py에 저장 iPython/Jupyter 노트북은 복사 + 붙여 넣기 전체/부분 스크립트 세포에 당신이 좋아하는 어떤 순서로 실행할 수 있습니다 사용하는 경우
그리고 디버그 모드로 이동이
python -m pdb filename.py

관련 문제