development

Python 프로그램 내에 대화 형 Python 셸 포함 (생성)

big-blog 2020. 12. 30. 20:17
반응형

Python 프로그램 내에 대화 형 Python 셸 포함 (생성)


Python 프로그램 내에서 대화 형 Python 셸을 시작할 수 있습니까?

나는 (실행되는 같은 대화 형 파이썬 쉘 사용하려는 내부의 일부 프로그램 내부 변수를 검사하는 내 프로그램의 실행).


코드 모듈은 대화 형 콘솔을 제공합니다 :

import readline # optional, will allow Up/Down/History in the console
import code
variables = globals().copy()
variables.update(locals())
shell = code.InteractiveConsole(variables)
shell.interact()

ipython 0.13+에서는 다음을 수행해야합니다.

from IPython import embed

embed()

나는이 코드를 오랫동안 가지고 있었는데, 당신이 그것을 사용할 수 있기를 바랍니다.

변수를 검사 / 사용하려면 변수를 현재 네임 스페이스에 넣으면됩니다. 예를 들어, 나는 액세스 할 수 var1var2명령 줄에서.

var1 = 5
var2 = "Mike"
# Credit to effbot.org/librarybook/code.htm for loading variables into current namespace
def keyboard(banner=None):
    import code, sys

    # use exception trick to pick up the current frame
    try:
        raise None
    except:
        frame = sys.exc_info()[2].tb_frame.f_back

    # evaluate commands in current namespace
    namespace = frame.f_globals.copy()
    namespace.update(frame.f_locals)

    code.interact(banner=banner, local=namespace)


if __name__ == '__main__':
  keyboard()

그러나 당신이 엄격하게 응용 프로그램을 디버깅하기를 원한다면, 나는 것 매우 IDE에서 또는 사용하는 것이 좋습니다 PDB (파이썬 디버거) .


IPython을 사용하면 다음을 호출하면됩니다.

from IPython.Shell import IPShellEmbed; IPShellEmbed()()

또 다른 트릭 (이미 제안 된 것 외에)은 대화 형 셸을 열고 (아마도 수정 된) 파이썬 스크립트를 가져 오는 것입니다. 가져올 때 대부분의 변수, 함수, 클래스 등 (전체 준비 방법에 따라 다름)을 사용할 수 있으며 명령 줄에서 대화 형으로 개체를 만들 수도 있습니다. 따라서 test.py파일 이있는 경우 Idle 또는 다른 셸을 열고 입력 할 수 있습니다 import test(현재 작업 디렉터리에있는 경우).

참조 URL : https://stackoverflow.com/questions/5597836/embed-create-an-interactive-python-shell-inside-a-python-program

반응형