IDLE

소스 코드: Lib/idlelib/


IDLE은 파이썬의 통합 개발 및 학습 환경입니다.

IDLE에는 다음과 같은 기능이 있습니다:

  • tkinter GUI 툴킷을 사용하여, 100% 순수 파이썬으로 코딩되었습니다

  • 크로스 플랫폼: 윈도우, 유닉스 및 macOS에서 거의 같게 작동합니다

  • 코드 입력, 출력 및 에러 메시지를 채색하는 파이썬 셸 창 (대화식 인터프리터)

  • 다중 실행 취소, 파이썬 색상 지정, 스마트 들여쓰기, 호출 팁, 자동 완성 및 기타 기능이 있는 다중 창 텍스트 편집기

  • 모든 창 내에서 검색, 편집기 창 내에서 교체 및 여러 파일을 통한 검색 (grep)

  • 지속적인 중단점(breakpoints), 스테핑(stepping) 및 전역과 지역 이름 공간 보기가 있는 디버거

  • 구성, 브라우저 및 기타 대화 상자

Editing and Navigation

편집기 창

설정과 IDLE 시작 방법에 따라, IDLE이 시작될 때 편집기 창을 열 수 있습니다. 그런 다음, File 메뉴를 사용하십시오. 주어진 파일에 대해 열린 편집기 창이 하나만 있을 수 있습니다.

제목 표시 줄에는 파일 이름, 전체 경로 및 창을 실행하는 파이썬과 IDLE 버전이 포함됩니다. 상태 표시 줄에는 줄 번호(‘Ln’)와 열 번호(‘Col’)가 있습니다. 줄 번호는 1로 시작합니다; 열 번호는 0으로 시작합니다.

IDLE은 알려진 .py* 확장자를 가진 파일에 파이썬 코드가 포함되어 있고 다른 파일은 그렇지 않다고 가정합니다. Run 메뉴를 사용하여 파이썬 코드를 실행하십시오.

키 바인딩

이 섹션에서, ‘C’는 윈도우와 유닉스의 Control 키와 macOS의 Command 키를 나타냅니다.

  • Backspace는 왼쪽을 삭제합니다; Del은 오른쪽을 삭제합니다

  • C-Backspace는 왼쪽 단어를 삭제합니다; C-Del은 오른쪽 단어를 삭제합니다

  • 화살표 키와 Page Up/Page Down은 이동합니다

  • C-LeftArrowC-RightArrow는 단어 단위로 이동합니다

  • Home/End 줄의 시작/끝으로 이동합니다

  • C-Home/C-End는 파일의 시작/끝으로 이동합니다

  • 유용한 Emacs 바인딩이 Tcl/Tk에서 상속됩니다:

    • C-a 줄의 시작

    • C-e 줄의 끝

    • C-k 줄을 지웁니다 (그러나 클립 보드에는 넣지 않습니다)

    • C-l 삽입 점이 창의 중심에 오도록 참을 조정합니다

    • C-b 삭제하지 않고 한 문자 뒤로 이동합니다 (보통 커서 키를 사용할 수도 있습니다)

    • C-f 삭제하지 않고 한 문자 앞으로 이동합니다 (보통 커서 키를 사용할 수도 있습니다)

    • C-p 한 줄 위로 올라갑니다 (보통 커서 키를 사용할 수도 있습니다)

    • C-d 다음 문자를 삭제합니다

(복사하는 C-c와 붙여넣기 하는 C-v와 같은) 표준 키 바인딩이 작동 할 수 있습니다. 키 바인딩은 IDLE 구성 대화 상자에서 선택됩니다.

자동 들여쓰기

블록을 여는 문장 다음에, 다음 줄은 4개의 스페이스로 들여쓰기 됩니다 (파이썬 셸 창에서는 한 탭씩). 특정 키워드(break, return 등)가 다음에 다음 줄이 내어 쓰기 됩니다. 앞선 들여쓰기에서, Backspace는 최대 4개의 스페이스가 있으면 삭제합니다. Tab은 스페이스를 삽입합니다 (파이썬 셸 창에서는 하나의 탭), 개수는 들여쓰기 너비에 따라 다릅니다. 현재 Tcl/Tk 제한으로 인해 탭은 4개의 스페이스로 제한됩니다.

Format 메뉴의 Indent/Dedent Region 명령도 참조하십시오.

Search and Replace

Any selection becomes a search target. However, only selections within a line work because searches are only performed within lines with the terminal newline removed. If [x] Regular expresion is checked, the target is interpreted according to the Python re module.

완성

요청되고 사용할 수 있을 때, 모듈 이름, 클래스나 함수의 어트리뷰트 또는 파일명에 대한 완성(completions)이 제공됩니다. 각 요청 방법은 기존 이름을 가진 완성 상자가 표시됩니다. (예외는 아래의 탭 완성을 참조하십시오.) 모든 상자는, 문자를 입력하고 삭제해서; Up, Down, PageUp, PageDown, HomeEnd 키를 쳐서; 상자 안에서 한 번의 클릭으로 완성 중인 이름과 상자에서 강조 표시된 항목을 변경합니다. Escape, Enter 및 이중 Tab 키나 상자 외부를 클릭하여 상자를 닫으십시오. 상자 안에서 더블 클릭하면 선택하고 닫습니다.

상자를 여는 한 가지 방법은 키 문자를 입력하고 미리 정의된 간격만큼 기다리는 것입니다. 기본값은 2초입니다; 설정 대화 상자에서 사용자 정의하십시오. (자동 팝업을 방지하려면, 지연을 100000000과 같은 큰 밀리초로 설정하십시오.) 임포트한 모듈 이름이나 클래스나 함수 어트리뷰트의 경우, ‘.’를 입력하십시오. 루트 디렉터리의 파일명은 여는 인용 부호 바로 뒤에 os.sep이나 os.altsep을 입력하십시오. (윈도우에서는, 먼저 드라이브를 지정할 수 있습니다.) 디렉터리 이름과 구분자를 입력하여 서브 디렉터리로 이동하십시오.

기다리는 대신, 또는 상자를 닫은 후, Edit 메뉴에서 Show Completions를 사용하여 즉시 완성 상자를 여십시오. 기본 단축키는 C-space입니다. 상자를 열기 전에 원하는 이름의 접두사를 입력하면, 첫 번째 일치나 근거리 불일치가 표시됩니다. 결과는 상자가 표시된 후 접두사를 입력하는 것과 같습니다. 따옴표 뒤에서의 Show Completions는 루트 디렉터리 대신 현재 디렉터리에서 파일명을 완성합니다.

접두사 다음에 Tab을 누르면 일반적으로 Show Completions와 같은 효과가 있습니다. (접두사가 없으면 들여쓰기합니다.) 그러나, 접두사와 일치하는 항목이 하나뿐이면, 상자를 열지 않고 해당 일치가 편집기 텍스트에 즉시 추가됩니다.

문자열 밖에서 선행 ‘.’ 없이 접두어 뒤에서 ‘Show Completions’를 실행하거나 Tab을 누르면 키워드, 내장 이름 및 사용 가능한 모듈 수준 이름이 포함된 상자를 엽니다.

(셸과 달리) 편집기에서 코드를 편집할 때는, 셸을 다시 시작하지 않고 코드를 실행해서 사용 가능한 모듈 수준 이름을 늘리십시오. 파일 맨 위에 임포트를 추가한 후에 특히 유용합니다. 이것은 또한 가능한 어트리뷰트 완성을 늘립니다.

Completion boxes initially exclude names beginning with ‘_’ or, for modules, not included in ‘__all__’. The hidden names can be accessed by typing ‘_’ after ‘.’, either before or after the box is opened.

콜팁

액세스할 수 있는 함수 이름 다음에 (를 입력하면 콜팁이 자동으로 표시됩니다. 함수 이름 표현식에는 점과 서브스크립트가 포함될 수 있습니다. 콜팁은 클릭하거나, 커서가 인자 영역 밖으로 이동하거나, )를 입력할 때까지 남아 있습니다. 커서가 정의의 인자 부분에 있을 때마다, 콜팁을 표시하려면 메뉴에서 Edit와 “Show Call Tip”을 선택하거나 바로 가기를 입력하십시오.

콜팁은 함수 서명과 독스트링의 첫 번째 빈 줄이나 다섯 번째 비어 있지 않은 줄에 이르는 줄로 구성됩니다. (일부 내장 함수에는 액세스할 수 있는 서명이 없습니다.) 서명의 ‘/’나 ‘*’는 앞서거나 뒤따르는 인자가 위치나 이름(키워드) 전용으로 전달됨을 가리킵니다. 세부 사항은 변경될 수 있습니다.

셸에서, 액세스할 수 있는 함수는 Idle 스스로 임포트 한 모듈을 포함하여, 사용자 프로세스로 임포트 한 모듈과 마지막 재시작 이후에 어떤 정의가 실행되었는지에 따라 다릅니다.

예를 들어, 셸을 다시 시작하고 itertools.count(를 입력하십시오. Idle이 자신의 목적으로 itertools를 사용자 프로세스로 임포트 하기 때문에 콜팁이 표시됩니다. (이것은 변경될 수 있습니다.) turtle.write(를 입력하면 아무것도 나타나지 않습니다. Idle은 직접 turtle을 임포트 하지 않습니다. 메뉴 항목과 바로 가기도 아무것도 하지 않습니다. import turtle을 입력하십시오. 그다음부터, turtle.write(가 콜팁을 표시합니다.

편집기에서, import 문은 파일을 실행할 때까지 효과가 없습니다. import 문을 작성한 후, 함수 정의를 추가한 후 또는 기존 파일을 연 후 파일을 실행하고 싶을 것입니다.

코드 컨텍스트

파이썬 코드가 포함된 편집기 창 내에서, 창의 상단에 팬을 표시하거나 숨기기 위해 코드 컨텍스트를 토글 할 수 있습니다. 표시될 때, 이 분할 창은 class, def 또는 if 키워드로 시작하는 것과 같이 블록 코드를 여는 줄들을 고정합니다, 그렇지 않다면 뷰에서 스크롤 되어 빠져나갈 줄들입니다. 팬의 크기는 모든 현재 컨텍스트 수준을 표시하기 위해 필요에 따라 확장과 축소되며, IDLE 구성 대화 상자에 정의된 최대 줄 수가지 입니다 (기본값은 15). 현재 컨텍스트 줄이 없고 기능이 켜지면, 빈 줄 하나가 표시됩니다. 컨텍스트 팬에서 줄을 클릭하면 해당 줄을 편집기 맨 위로 이동합니다.

컨텍스트 팬의 텍스트와 배경색은 IDLE 구성 대화 상자의 Highlights 탭에서 구성할 수 있습니다.

Shell window

In IDLE’s Shell, enter, edit, and recall complete statements. (Most consoles and terminals only work with a single physical line at a time).

Submit a single-line statement for execution by hitting Return with the cursor anywhere on the line. If a line is extended with Backslash (\), the cursor must be on the last physical line. Submit a multi-line compound statement by entering a blank line after the statement.

When one pastes code into Shell, it is not compiled and possibly executed until one hits Return, as specified above. One may edit pasted code first. If one pastes more than one statement into Shell, the result will be a SyntaxError when multiple statements are compiled as if they were one.

Lines containing RESTART mean that the user execution process has been re-started. This occurs when the user execution process has crashed, when one requests a restart on the Shell menu, or when one runs code in an editor window.

이전 서브 섹션에서 설명한 편집 기능은 대화식으로 코드를 입력할 때 작동합니다. IDLE의 셸 창은 다음 키에도 반응합니다.

  • C-c 명령 실행을 중단합니다

  • C-d EOF(end-of-file)를 보냅니다; >>> 프롬프트에서 입력하면 창을 닫습니다

  • Alt-/ (단어 확장) 입력을 줄이는 데 유용합니다

    명령 히스토리

    • Alt-p 입력한 내용과 일치하는 이전 명령을 가져옵니다. macOS에서는 C-p를 사용하십시오.

    • Alt-n 다음을 가져옵니다. macOS에서는 C-n을 사용하십시오.

    • Return while the cursor is on any previous command retrieves that command

텍스트 색상

Idle은 기본적으로 흰색 위의 검은색 텍스트지만, 특수한 의미로 텍스트를 채색합니다. 셸의 경우, 셸 출력, 셸 에러, 사용자 출력 및 사용자 에러입니다. 파이썬 코드의 경우, 셸 프롬프트나 편집기에서, 키워드, 내장 클래스와 함수 이름, classdef 뒤에 오는 이름, 문자열 및 주석입니다. 모든 텍스트 창에서, 커서 (있다면), 찾은 텍스트 (가능하다면) 및 선택한 텍스트입니다.

IDLE also highlights the soft keywords match, case, and _ in pattern-matching statements. However, this highlighting is not perfect and will be incorrect in some rare cases, including some _-s in case patterns.

텍스트 채색은 백그라운드에서 수행되므로, 채색되지 않은 텍스트가 때때로 표시됩니다. 색 구성표를 변경하려면, IDLE 구성 대화 상자 Highlighting 탭을 사용하십시오. 편집기의 디버거 중단점 표시와 팝업과 대화 상자의 텍스트는 사용자가 구성할 수 없습니다.

Startup and Code Execution

-s 옵션으로 시작할 때, IDLE은 환경 변수 IDLESTARTUP이나 PYTHONSTARTUP가 참조하는 파일을 실행합니다. IDLE은 먼저 IDLESTARTUP을 확인합니다; IDLESTARTUP이 있으면 참조된 파일이 실행됩니다. IDLESTARTUP이 없으면, IDLE은 PYTHONSTARTUP을 확인합니다. 이러한 환경 변수가 참조하는 파일은 IDLE 셸에서 자주 사용되는 함수를 저장하거나 공통 모듈을 임포트 하기 위해 import 문을 실행하기에 편리한 장소입니다.

또한, Tk도 시작 파일이 있으면 로드합니다. Tk 파일은 무조건 로드됨에 유의하십시오. 이 추가 파일은 .Idle.py이며 사용자의 홈 디렉터리에서 찾습니다. 이 파일의 문장은 Tk 이름 공간에서 실행되므로, 이 파일은 IDLE의 파이썬 셸에서 사용할 함수를 임포트 하는 데 유용하지 않습니다.

명령 줄 사용법

idle.py [-c command] [-d] [-e] [-h] [-i] [-r file] [-s] [-t title] [-] [arg] ...

-c command  run command in the shell window
-d          enable debugger and open shell window
-e          open editor window
-h          print help message with legal combinations and exit
-i          open shell window
-r file     run file in shell window
-s          run $IDLESTARTUP or $PYTHONSTARTUP first, in shell window
-t title    set title of shell window
-           run stdin in shell (- must be last option before args)

인자가 있으면:

  • -, -c 또는 r이 사용되면, 모든 인자는 sys.argv[1:...]에 배치되고 sys.argv[0]'', '-c' 또는 '-r'로 설정됩니다. Options 대화 상자에서 기본값이 설정되어 있어도, 편집기 창이 열리지 않습니다.

  • 그렇지 않으면, 인자는 편집을 위해 열리는 파일이며 sys.argv는 IDLE 자체에 전달된 인자를 반영합니다.

시작 실패

IDLE은 소켓을 사용하여 IDLE GUI 프로세스와 사용자 코드 실행 프로세스 간에 통신합니다. 셸을 시작하거나 다시 시작할 때마다 연결을 만들어야 합니다. (후자는 ‘RESTART’라고 표시된 구분 선으로 표시됩니다). 사용자 프로세스가 GUI 프로세스에 연결하지 못하면, 보통 사용자에게 알리는 ‘cannot connect’ 메시지가 담긴 Tk 에러 상자가 표시됩니다. 그런 다음 종료합니다.

유닉스 시스템의 한가지 특정한 연결 실패는 시스템 네트워크 설정의 어딘가에서 잘못 구성된 마스쿼레이딩 규칙으로 인해 발생합니다. IDLE이 터미널에서 시작될 때, ** Invalid host:로 시작하는 메시지를 보게 됩니다. 유효한 값은 127.0.0.1 (idlelib.rpc.LOCALHOST)입니다. 한 터미널 창에서 tcpconnect -irv 127.0.0.1 6543로, 다른 창에서 tcplisten <same args>로 진단할 수 있습니다.

일반적인 실패 원인은 random.pytkinter.py처럼, 표준 라이브러리 모듈과 이름이 같은 사용자가 작성한 파일입니다. 이러한 파일이 실행하려는 파일과 같은 디렉터리에 있을 때, IDLE은 표준 라이브러리 파일을 임포트 할 수 없습니다. 현재 수선법은 사용자 파일의 이름을 바꾸는 것입니다.

앞엣것보다 덜 흔하지만, 바이러스 백신이나 방화벽 프로그램이 연결을 중지할 수 있습니다. 프로그램이 연결을 허용하도록 지시할 수 없으면, IDLE이 작동하도록 프로그램을 꺼야 합니다. 외부 포트에 데이터가 노출되지 않기 때문에 이 내부 연결을 허용하는 것은 안전합니다. 비슷한 문제는 연결을 차단하는 네트워크 구성 에러입니다.

파이썬 설치 문제로 인해 IDLE이 중지되는 경우가 있습니다: 여러 버전이 충돌하거나 단일 설치에 관리자 액세스가 필요할 수 있습니다. 충돌을 제거하거나, 관리자 권한으로 실행할 수 없거나 그러고 싶지 않으면 파이썬을 완전히 제거하고 다시 시작하기가 가장 쉽습니다.

좀비 pythonw.exe 프로세스가 문제일 수 있습니다. 윈도우에서는, 작업 관리자를 사용하여 확인하고 있다면 중지하십시오. 때때로 프로그램 충돌이나 키보드 인터럽트(control-C)에 의해 시작된 재시작이 연결에 실패할 수 있습니다. 에러 상자를 닫거나 Shell 메뉴에서 Restart Shell을 사용하면 일시적인 문제를 해결할 수 있습니다.

IDLE이 처음 시작되면, ~/.idlerc/에서 사용자 구성 파일을 읽으려고 시도합니다 (~는 사용자의 홈 디렉터리입니다). 문제가 있으면, 에러 메시지가 표시되어야 합니다. 임의의 디스크 결함은 예외로 할 때, 파일을 절대 직접 편집하지 않으면 이를 방지할 수 있습니다. 대신, Options의 구성 대화 상자를 사용하십시오. 일단 사용자 구성 파일에 에러가 발생하면, 이를 삭제하고 설정 대화 상자에서 다시 시작하는 것이 가장 좋습니다.

IDLE이 메시지 없이 종료되고, 콘솔에서 시작되지 않았으면, 콘솔이나 터미널에서 시작하고 (python -m idlelib) 에러 메시지가 나타나는지 확인하십시오.

Tcl/tk가 8.6.11(About IDLE을 보십시오)보다 오래된 유닉스 기반 시스템에서 특정 글꼴의 특정 문자는 터미널에 보내는 메시지와 함께 tk 실패를 일으킬 수 있습니다. 이러한 문자가 있는 파일을 편집하기 위해 IDLE을 시작하거나 나중에 이러한 문자를 입력할 때 발생할 수 있습니다. tcl/tk를 업그레이드할 수 없으면, 더 잘 작동하는 글꼴을 사용하도록 IDLE을 다시 구성하십시오.

사용자 코드 실행하기

With rare exceptions, the result of executing Python code with IDLE is intended to be the same as executing the same code by the default method, directly with Python in a text-mode system console or terminal window. However, the different interface and operation occasionally affect visible results. For instance, sys.modules starts with more entries, and threading.active_count() returns 2 instead of 1.

기본적으로, IDLE은 셸과 편집기를 실행하는 사용자 인터페이스 프로세스가 아닌 별도의 OS 프로세스에서 사용자 코드를 실행합니다. 실행 프로세스에서, sys.stdin, sys.stdoutsys.stderr를 셸 창에서 입력을 받고 셸 창으로 출력을 보내는 객체로 바꿉니다. sys.__stdin__, sys.__stdout__sys.__stderr__에 저장된 원래 값은 건드리지 않지만, None일 수 있습니다.

한 프로세스에서 다른 프로세스의 텍스트 위젯으로 인쇄 출력을 보내는 것은 같은 프로세스에서 시스템 터미널로 인쇄하는 것보다 느립니다. 이것은 여러 인자를 인쇄할 때 특히 그렇습니다. 각 인자의 문자열, 각 구분자, 줄 바꿈은 개별적으로 전송되기 때문입니다. 개발할 때는 일반적으로 문제가 되지 않지만, IDLE로 더 빨리 인쇄하려면 표시하려는 모든 항목을 포맷하고 결합한 다음 단일 문자열을 인쇄하십시오. 포맷 문자열과 str.join() 모두 필드와 줄을 결합하는 데 도움이 될 수 있습니다.

IDLE’s standard stream replacements are not inherited by subprocesses created in the execution process, whether directly by user code or by modules such as multiprocessing. If such subprocess use input from sys.stdin or print or write to sys.stdout or sys.stderr, IDLE should be started in a command line window. (On Windows, use python or py rather than pythonw or pyw.) The secondary subprocess will then be attached to that window for input and output.

importlib.reload(sys)와 같은 사용자 코드에 의해 sys가 재설정되면, IDLE의 변경 사항이 손실되고 키보드로부터의 입력과 화면으로의 출력이 올바르게 동작하지 않게 됩니다.

셸에 포커스가 있으면, 키보드와 화면을 제어합니다. 이것은 일반적으로 투명하지만, 키보드와 화면에 직접 액세스하는 함수는 작동하지 않습니다. 여기에는 키를 눌렀는지를 판단하는 시스템 특정 함수가 포함됩니다.

실행 프로세스에서 실행 중인 IDLE 코드는 그렇지 않다면 없을 프레임을 호출 스택에 추가합니다. IDLE은 sys.getrecursionlimitsys.setrecursionlimit를 래핑하여 추가 스택 프레임의 영향을 줄입니다.

사용자 코드가 직접 또는 sys.exit를 호출하여 SystemExit를 발생시키면, IDLE은 종료하는 대신 셸 프롬프트로 돌아갑니다.

셸의 사용자 출력

프로그램이 텍스트를 출력할 때, 결과는 해당 출력 장치에 의해 결정됩니다. IDLE이 사용자 코드를 실행할 때, sys.stdoutsys.stderr이 IDLE 셸의 표시 영역에 연결됩니다. 그 기능 중 일부는 하부 Tk Text 위젯에서 상속됩니다. 다른 것은 프로그래밍한 추가 사항입니다. (중요하다면) 셸은 상용 실행보다는 개발용으로 설계되었습니다.

예를 들어, 셸은 절대로 출력을 버리지 않습니다. 셸에 무제한 출력을 보내는 프로그램은 결국 메모리를 채워서, 메모리 에러를 일으킵니다. 반대로, 일부 시스템 텍스트 창은 마지막 n 줄의 출력만 유지합니다. 예를 들어, 윈도우 콘솔은 사용자가 설정하면 최대 9999줄을 유지할 수 있으며, 기본값은 300입니다.

Tk Text 위젯, 따라서 IDLE의 셸은 유니코드의 BMP (Basic Multilingual Plane) 부분 집합에서 문자(코드 포인트)를 표시합니다. 어떤 문자가 적절한 글리프로 표시될지와 어떤 문자가 대체 상자로 표시될지는 운영 체제와 설치된 글꼴에 따라 다릅니다. 탭 문자는 뒤따르는 문자가 다음 탭 정지 뒤에서 시작되도록 합니다. (탭 정지는 8 ‘문자’마다 나타납니다). 줄 바꿈 문자는 뒤따르는 텍스트가 새 줄에 나타나게 합니다. 다른 제어 문자는 운영 체제와 글꼴에 따라 무시되거나 스페이스, 상자 또는 그 밖의 것으로 표시됩니다. (화살표 키를 사용하여 이러한 출력에서 텍스트 커서를 움직이면 예상치 못한 간격 동작이 나타날 수 있습니다.)

>>> s = 'a\tb\a<\x02><\r>\bc\nd'  # Enter 22 chars.
>>> len(s)
14
>>> s  # Display repr(s)
'a\tb\x07<\x02><\r>\x08c\nd'
>>> print(s, end='')  # Display s as is.
# Result varies by OS and font.  Try it.

repr 함수는 표현식 값의 대화 형 에코에 사용됩니다. 입력 문자열의 변경된 버전을 반환하는데, 제어 코드, 일부 BMP 코드 포인트 및 모든 BMP 이외의 코드 포인트가 이스케이프 코드로 대체됩니다. 위에서 예시했듯이, 어떻게 표시되는지와 관계없이 문자열의 문자를 식별할 수 있도록 합니다.

정상과 에러 출력은 일반적으로 코드 입력 및 서로와 분리되어 별도의 줄에 유지됩니다. 그들은 각각 다른 강조 색상을 얻습니다.

SyntaxError 트레이스백의 경우, 에러가 감지된 곳의 일반적인 ‘^’ 표시는 에러 강조로 텍스트를 색칠하는 것으로 대체됩니다. 파일에서 실행한 코드가 다른 예외를 발생시킬 때, 트레이스백 줄을 마우스 오른쪽 단추로 클릭하여 IDLE 편집기의 해당 줄로 이동할 수 있습니다. 필요하면 파일이 열립니다.

셸에는 출력 라인을 ‘Squeezed text’ 레이블로 압착하는 특수 기능이 있습니다. 이것은 N 줄을 넘어가는 출력에 대해 자동으로 수행됩니다 (기본적으로 N = 50). Settings 대화 상자의 General 페이지의 PyShell 섹션에서 N을 변경할 수 있습니다. 출력을 마우스 오른쪽 버튼으로 클릭하면 더 적은 줄의 출력을 압착할 수 있습니다. 이것은 스크롤 속도를 늦출 수 있을 정도로 긴 줄에 유용할 수 있습니다.

압착된 출력은 레이블을 더블 클릭하여 제자리에서 펼쳐집니다. 레이블을 마우스 오른쪽 버튼으로 클릭하여 클립 보드나 별도의 보기 창으로 보낼 수도 있습니다.

tkinter 응용 프로그램 개발하기

IDLE은 tkinter 프로그램 개발을 용이하게 하기 위해 표준 파이썬과 의도적으로 다릅니다. 표준 파이썬에서 import tkinter as tk; root = tk.Tk()를 입력하면 아무것도 나타나지 않습니다. IDLE에 동일하게 입력하면 tk 창이 나타납니다. 표준 파이썬에서는, 창을 보려면 root.update()도 입력해야 합니다. IDLE은 초당 약 20회, 대략 50밀리초마다, 백그라운드에서 동등한 일을 합니다. 그런 다음 b = tk.Button(root, text='button'); b.pack()을 입력하십시오. 마찬가지로, 표준 파이썬에서는 root.update()를 입력할 때까지 아무것도 시각적으로 변경되지 않습니다.

대부분의 tkinter 프로그램은 root.mainloop()를 실행하는데, 일반적으로 tk 앱이 파괴될 때까지 반환되지 않습니다. 프로그램이 python -i이나 IDLE 편집기에서 실행되면, mainloop()가 반환할 때까지 (상호 작용할 것이 남아있지 않을 때까지) >>> 셸 프롬프트가 나타나지 않습니다.

IDLE 편집기에서 tkinter 프로그램을 실행할 때, mainloop 호출을 주석 처리할 수 있습니다. 그러면 즉시 셸 프롬프트를 얻고 라이브 응용 프로그램과 상호 작용할 수 있습니다. 표준 파이썬에서 실행할 때 mainloop 호출을 다시 활성화해야 한다는 것을 기억해야 합니다.

서브 프로세스 없이 실행하기

By default, IDLE executes user code in a separate subprocess via a socket, which uses the internal loopback interface. This connection is not externally visible and no data is sent to or received from the internet. If firewall software complains anyway, you can ignore it.

소켓 연결 시도가 실패하면, Idle은 여러분에게 알립니다. 이러한 장애는 때때로 일시적이지만, 지속한다면, 문제는 방화벽이 연결을 차단하거나 특정 시스템의 구성이 잘못되었을 수 있습니다. 문제가 해결될 때까지, -n 명령 줄 스위치를 사용하여 Idle을 실행할 수 있습니다.

IDLE이 -n 명령 줄 스위치로 시작되면 단일 프로세스에서 실행되며 RPC 파이썬 실행 서버를 실행하는 서브 프로세스를 만들지 않습니다. 파이썬이 플랫폼에서 서브 프로세스나 RPC 소켓 인터페이스를 만들 수 없을 때 유용할 수 있습니다. 그러나, 이 모드에서 사용자 코드는 IDLE 자체와 분리되지 않습니다. 또한, Run/Run Module (F5) 가 선택될 때 환경이 다시 시작되지 않습니다. 코드가 수정되면, 변경 사항을 적용하려면 영향을 받는 모듈을 reload()하고 특정 항목을 다시 임포트 해야 합니다 (예를 들어 from foo import baz). 이러한 이유로, 가능하다면 기본 서브 프로세스로 IDLE을 실행하는 것이 좋습니다.

버전 3.4부터 폐지.

Help and Preferences

도움말 소스

Help 메뉴 항목 “IDLE Help”는 라이브러리 레퍼런스의 IDLE 장의 포맷된 html 버전을 표시합니다. 읽기 전용 tkinter 텍스트 창에 표시되는 결과는 웹 브라우저에서 보는 것과 비슷합니다. 마우스 휠, 스크롤 바 또는 위/아래 화살표 키를 누른 상태로 텍스트를 탐색하십시오. 또는 TOC(목차) 단추를 클릭하고 열린 상자에서 섹션 머리글을 선택하십시오.

Help 메뉴 항목 “Python Docs”는 docs.python.org/x.y에 있는 자습서를 포함하여 광범위한 도움말 소스를 엽니다, 여기서 ‘x.y’는 현재 실행 중인 파이썬 버전입니다. 시스템에 문서의 오프라인 사본이 있으면 (설치 옵션일 수 있습니다), 대신 열립니다.

IDLE 구성 대화 상자의 General 탭을 사용하여 언제든지 도움말 메뉴에서 선택한 URL을 추가하거나 제거할 수 있습니다.

환경 설정

글꼴 설정, 강조 표시, 키 및 일반 설정은 Option 메뉴의 IDLE 구성을 통해 변경할 수 있습니다. 기본이 아닌 사용자 설정은 사용자 홈 디렉터리의 .idlerc 디렉터리에 저장됩니다. 잘못된 사용자 구성 파일로 인한 문제점은 .idlerc에서 하나 이상의 파일을 편집하거나 삭제하여 해결됩니다.

Font 탭에서, 여러 언어로 된 여러 문자의 서체와 크기 효과에 대한 텍스트 샘플을 참조하십시오. 개인적으로 관심 있는 다른 문자를 추가하려면 샘플을 편집하십시오. 샘플을 사용하여 고정 폭 글꼴을 선택하십시오. 셸이나 편집기에서 특정 문자에 문제가 있으면, 샘플 상단에 해당 문자를 추가하고 먼저 크기를 변경한 다음 글꼴을 변경해보십시오.

Highlights와 Keys 탭에서, 내장이나 사용자 정의 색상 테마와 키 집합을 선택하십시오. 이전 IDLE로 최신 내장 색상 테마나 키 집합을 사용하려면, 새 사용자 정의 색상 테마나 키 집합으로 저장하십시오, 그러면 이전 IDLE에서 쉽게 액세스 할 수 있습니다.

macOS의 IDLE

시스템 환경설정: Dock에서, “문서를 열 때 탭 사용”을 “항상”으로 설정할 수 있습니다. 이 설정은 IDLE에서 사용하는 tk/tkinter GUI 프레임 워크와 호환되지 않으며, 몇 가지 IDLE 기능을 훼손합니다.

확장

IDLE에는 확장 기능이 포함되어 있습니다. 설정 대화 상자의 Extensions 탭에서 확장에 대한 설정을 변경할 수 있습니다. 자세한 정보는 idlelib 디렉터리에 있는 config-extensions.def의 시작 부분을 참조하십시오. 현재 기본 확장은 zzdummy 뿐이며, 테스트에도 사용되는 예입니다.

idlelib

Source code: Lib/idlelib


The Lib/idlelib package implements the IDLE application. See the rest of this page for how to use IDLE.

The files in idlelib are described in idlelib/README.txt. Access it either in idlelib or click Help => About IDLE on the IDLE menu. This file also maps IDLE menu items to the code that implements the item. Except for files listed under ‘Startup’, the idlelib code is ‘private’ in sense that feature changes can be backported (see PEP 434).