source

Python 코드에서 REPL(Read, Eval, Print, Loop)로 드롭하는 방법

manysource 2023. 8. 28. 21:12

Python 코드에서 REPL(Read, Eval, Print, Loop)로 드롭하는 방법

Python 스크립트가 명령줄에서 실행된 경우에도 실행 시 임의의 지점에서 REPL에 강제로 삽입되도록 프로그래밍할 수 있는 방법이 있습니까?

저는 빠르고 더러운 플롯 프로그램을 작성하고 있습니다. 이 프로그램은 stdin 또는 파일에서 데이터를 읽고 플롯한 다음 REPL로 이동하여 플롯을 사용자 지정할 수 있도록 합니다.

자주 사용하는 항목:

def interact():
    import code
    code.InteractiveConsole(locals=globals()).interact()

python에 대한 대화형 옵션을 사용해 볼 수 있습니다.

python -i program.py

그러면 program.py 의 코드가 실행된 다음 REPL로 이동합니다.최상위 프로그램 수준에서 정의하거나 가져오는 모든 항목.파이를 사용할 수 있습니다.

다음은 이 작업을 수행하는 방법입니다(IPython > v0.11).

import IPython
IPython.embed()

IPython <= v0.11의 경우:

from IPython.Shell import IPShellEmbed

ipshell = IPShellEmbed()

ipshell() # this call anywhere in your program will start IPython

당신은 파이썬 REPL의 캐딜락인 아이피톤을 사용해야 합니다.http://ipython.org/ipython-doc/stable/interactive/reference.html#embedding-ipython 을 참조하십시오.

설명서에서 다음을 참조하십시오.

또한 자동적이고 계산 집약적인 부분을 수행한 다음 데이터, 플롯 등을 살펴보기 위해 중지해야 하는 경우가 일반적인 과학적 컴퓨팅 상황에서도 유용할 수 있습니다.IPython 인스턴스를 열면 데이터와 기능에 대한 모든 액세스 권한이 제공되며, 대화형 파트를 마치면 프로그램 실행을 다시 시작할 수 있습니다(필요한 횟수만큼 나중에 다시 중지할 수도 있음).

디버거를 시작할 수 있습니다.

import pdb;pdb.set_trace() 

REPL을 무엇에 사용할지는 모르겠지만 디버거는 매우 유사합니다.

iPython과 디버거의 기능을 사용하려면 ipdb를 사용해야 합니다.

다음을 추가하여 pdb와 동일한 방법으로 사용할 수 있습니다.

import ipdb
ipdb.set_trace()

방금 제가 작성한 스크립트 중 하나에서 이 작업을 수행했습니다(이 스크립트는 계측기에 매우 큰 PITA인 자동화 프레임워크 내부에서 실행됨).).

x = 0 # exit loop counter
while x == 0:
    user_input = raw_input("Please enter a command, or press q to quit: ")
    if user_input[0] == "q":
        x = 1
    else:
        try:
            print eval(user_input)
        except:
            print "I can't do that, Dave."
            continue

브레이크포인트를 원하는 곳에 배치하면 파이썬 인터프리터와 동일한 구문을 사용하여 상태를 확인할 수 있습니다(모듈 가져오기를 할 수 있는 것 같지는 않지만).매우 우아하지는 않지만, 다른 설정이 필요하지는 않습니다.

위의 답변은 훌륭하지만 IDE에서 이 기능을 사용하려면 다음과 같이 하십시오.Python Setup에서 Visual Studio Code(v1.5.*) 사용:

  1. 실행할 라인을 강조 표시하고
  • right click를 선택합니다.Run Selection/Line in Interactive Window드롭 다운에서
  • 를 누릅니다.shift + enter키보드에 있습니다.

enter image description here

  1. 마우스 오른쪽 버튼을 클릭Python하고자 하는 을 선택합니다.Run Current File in Interactive Window

enter image description here

그러면 대화형 세션이 시작되고 다음과 같이 보풀 처리, 코드 완료 및 구문 강조가 표시됩니다.

enter image description here

enter image description here

평할코를입고다음누릅을다니하력드가를 누릅니다.shift + enter키보드에서 실행할 수 있습니다.

파이썬을 즐기세요!

언급URL : https://stackoverflow.com/questions/1395913/how-to-drop-into-repl-read-eval-print-loop-from-python-code