파이썬 인터프리터는 보통 /usr/local/bin/python에 설치되어 있습니다; Unix 쉘의 검색 경로에 /usr/local/bin을 넣어 두면 쉘에 다음과 같이 명령어를 입력하여 기동시킬 수 있습니다.
python
디렉토리의 선택은 어디에 설치되어 있는가에 달려 있기 때문에, 다른 곳일 수도 있습니다; 주변의 파이썬 도사나 시스템 관리자에게 문의하세요. (예를 들어, /usr/local/python도 인기 있는 위치입니다.)
윈도우즈에서 파이썬은 보통 C:\Python25에 설치됩니다. 그렇지만 설치할 때에 다른 곳으로 바꿀 수도 있습니다. 이 디렉토리를 경로에 추가하려면, 도스 박스에서 다음 명령어를 타자해 넣으면 됩니다:
set path=%path%;C:\python25
파일-의-끝 문자를 (Unix에서는 Control-D, 윈도우즈에서는 Control-Z) 기본 프롬프트에서 입력하면 인터프리터가 종료 상태 0을 가지고 종료합니다. 그게 작동하지 않을 경우, 다음 명령어를 인터프리터에 타자해 넣으면 종료할 수 있습니다: "import sys; sys.exit()".
파이썬 인터프리터의 줄-편집 특징은 보통 별로 섬세하지 못합니다. Unix에서는 누구든지 GNU readline 라이브러리의 기능을 지원 받을 수 있습니다. 이 라이브러리는 더 정교하게 상호대화적으로 편집이 가능하고 히스토리 특징이 추가되어 있습니다. 아마도 명령어 줄 편집이 지원되는지 제일 빨리 알아보는 방법은 파이썬 프롬프트가 뜨자 마자 Control-P를 타자해 보는 것입니다. 삑하고 소리를 내면, 명령어 줄 편집을 지원받는다는 뜻입니다; 부록 A에서 키들에 대한 소개를 보세요. 아무일도 일어나지 않으면, 또는 그냥 P가 타자되면, 명령어 줄 편집 기능을 사용할 수 없습니다; 그저 백스페이스를 사용하여 현재 줄에서 문자나 지울 수 있을 뿐입니다.
파이썬 인터프리터는 Unix 쉘과 약간 비슷하게 작동합니다: tty 장치에 연결된 표준 입력으로 호출되면, 명령어를 상호대화적으로 읽고 실행합니다; 파일 이름을 표준 입력으로 하여 호출되면, 그 파일로부터 스크립트(script)를 읽어 실행합니다.
파이썬 인터프리터를 기동시키는 두 번째 방법은 "python -c command [arg] ..."인데, 이 방법은 command에 있는 서술문(들)을 실행합니다. 이는 쉘의 -c 옵션과 비슷합니다. 파이썬의 서술문에는 종종 공백 문자나 기타 쉘에 특별한 문자들이 포함될 수 있기 때문에, 겹따옴표로 command를 전부 다 감싸는 것이 제일 좋습니다.
어떤 파이썬 모듈은 스크립트로도 쓸모가 있습니다. 이런 모듈은 "python -m module [arg] ..."와 같이 요청하면 되는데, 이렇게 하면 module에 대한 소스 파일을 마치 명령어 줄에서 그의 전체 이름을 지정한 듯이 실행합니다.
"python file"과 "python <file"에 차이가 있음에 주목합시다. 뒤의 경우에는 프로그램으로부터 요구되는 입력이 마치 input()과 raw_input()인 것처럼, 파일(file)에서 채워집니다. 이 파일은 프로그램이 실행을 시작하기 전에 해석기가 끝까지 이미 읽어 두었기 때문에, 프로그램은 즉시 파일-의-끝을 맞이합니다. 앞의 경우는 (이것이 보통 원하는 것인데) 무슨 파일이든 장치든 파이썬 인터프리터의 표준 입력에 연결됩니다.
스크립트 파일을 사용할 때면 그 스크립트를 시작하고 나서 이후로 상호대화 모드로 진입할 수 있으면 편리한 경우가 많습니다. 이렇게 하려면 스크립트 앞에-i를 건네면 됩니다. (이것은 스크립트가 표준 입력으로부터 읽혀지면 작동하지 않습니다. 앞의 문단에서 설명한 바와 같은 이유 때문입니다.)
파이썬 인터프리터에 스크립트를 건네면, 파이썬은 그 스크립트 이름과 그 이후의 추가 인자를 그 스크립트에 건넵니다. sys.argv변수에 담아 건네는데, 이는 문자열 리스트로서 길이는 적어도 1입니다; 스크립트와 인자가 전혀 주어지지 않으면, sys.argv[0]는 빈 문자열입니다. 스크립트 이름이 (표준 입력이라는 뜻으로) '-'로 주어지면, sys.argv[0]는 '-'로 설정됩니다. -c command가 사용되면, sys.argv[0]는 '-c'로 설정됩니다. -m module이 사용되면, sys.argv[0]는 지정한 모듈의 전체이름이 설정됩니다. -c command이나 -m module 뒤에 나오는 옵션들은 파이썬 인터프리터가 처리하지 않고 sys.argv에 남겨두어서 명령어나 모듈이 처리하도록 합니다.
명령어가 tty로부터 들어오면, 파이썬은 상호대화 모드(상호대화 모드)로 설정됩니다. 이 모드에서는 1차 프롬프트로 다음 명령어를 기다리는데, 보통 좌꺽쇠가 세 개입니다 (">>> "); 연속되는 줄에서는 2차 프롬프트로 기다리는데, 기본 값은 점 세개입니다 ("... "). 인터프리터는 자신의 버전 번호와 복사권 고지를 알리는 환영 메시지를 인쇄하고 나서 프롬프트를 시작합니다:
python Python 1.5.2b2 (#1, Feb 28 1999, 00:02:06) [GCC 2.8.1] on sunos5 Copyright 1991-1995 Stichting Mathematisch Centrum, Amsterdam >>>
여러-줄 구조를 입력하려면 연속 줄이 필요합니다. 예를 들어, 다음의 if 서술문을 봅시다:
>>> the_world_is_flat = 1 >>> if the_world_is_flat: ... print "Be careful not to fall off!" ... Be careful not to fall off!
에러가 일어나면, 파이썬은 에러 메시지와 스택 추적을 인쇄합니다. 상호대화 모드라면 그리고 나서 다시 1차 프롬프트로 돌아옵니다; 입력이 파일로부터 온다면 스택 추적을 인쇄한 후에 0이 아닌 종료 상태코드를 가지고 종료합니다. ( try 서술문 안의 except 절에서 처리되는 예외는 이 문맥에서 에러가 아닙니다.) 어떤 에러들은 손을 댈 수 없을 정도로 치명적이어서 0이 아닌 상태 코드를 가지고 종료할 수 밖에 없습니다; 이런 경우는 내부적으로 일관성을 잃고 메모리가 고갈되는 경우에 적용됩니다. 모든 에러 메시지들은 표준 에러 스트림에 기록됩니다; 명령이 실행되고 정상적으로 출력되면 표준 출력에 기록됩니다.
중지 문자를 (보통 Control-C 또는 DEL) 1차 또는 2차 프롬프트에서 타자하면 입력을 취소하고 1차 프롬프트로 복귀합니다.2.1명령어가 실행중일 때 중지 문자를 타자하면 KeyboardInterrupt 예외가 일어납니다. 이 예외는 try 서술문으로 처리가 가능합니다.
BSD스러운 Unix 시스템이라면 파이썬 스크립트는 마치 쉘 스크립트 같이 직접적으로 실행가능합니다. 다음과 같은 줄을 넣어두면 됩니다
#! /usr/bin/env python
(파이썬이 사용자의 PATH에 있다고 가정하고) 스크립트의 첫 줄을 이렇게 하고 실행 모드를 주면 됩니다. 파일의 첫 두 자는 반드시 "#!"가 되어야 합니다. 어떤 플랫폼에서는 이 첫 줄이 반드시 Unix-스타일의 줄 종료 문자("\n")로 끝나야 합니다. Mac OS ("\r") 또는 윈도우즈의 ("\r\n") 줄 종료 문자는 안 됩니다. 해시 문자 "#"는 파이썬에서 주석을 시작하는데 사용됩니다.
스크립트에 실행 모드, 즉 허가권을 부여하려면, chmod 명령어를 사용하면 됩니다:
$ chmod +x myscript.py
파이썬 소스 파일에 ASCII 말고 다른 인코딩을 사용하는 것도 됩니다. 가장 좋은 방법은 특수한 주석 줄을 한 줄 더 #! 줄 바로 다음에 추가하여 소스 파일 인코딩을 정의하는 것입니다:
# -*- coding: encoding -*-
이렇게 선언하면 모든 소스 파일 안의 문자들이 인코딩(encoding)을 가진 듯이 취급되어, 직접적으로 유니코드 문자열 기호를 쓰는 것이 가능합니다. 가능한 인코딩 목록은 파이썬 라이브러리 참조서에서 codecs 섹션에 있습니다.
예를 들어, 유럽 화폐기호를 포함한 유니코드 기호상수를 작성하려면, ISO-8859-15 인코딩을 사용할 수 있습니다. Euro 심볼은 서수 값이 164입니다. 다음 스크립트는 값 8364(유로 심볼에 대응하는 유니코드 코드포인트)를 인쇄하고 바로 종료합니다:
# -*- coding: iso-8859-15 -*- currency = u"€" print ord(currency)
편집기에서 파일을 UTF-8바이트 순서 표식 (일명 BOM)으로 저장할 수 있으면, 인코딩 대신에 그것을 사용해도 좋습니다. IDLE에서 이런 능력을 지원합니다. Options/General/Default Source Encoding/UTF-8로 설정되어 있다면 말입니다. 이 서명은 예전의 (2.2 이전) 파이썬에서는 이해하지 못합니다. 또한, #!으로 시작되는 스크립트라면 운영 체제도 이해하지 못합니다 (오직 Unix 시스템에서만 사용되기 때문).
UTF-8을 사용하면 (서명이든 인코딩 선언이든), 세상의 모든 언어의 문자들을 기호상수나 주석에 동시에 사용할 수 있습니다. 비-ASCII 문자들을 식별자에 사용하는 것은 지원하지 않습니다. 이 모든 문자들을 화면에 제대로 표시하려면, 편집기는 그 파일이 UTF-8임을 인식해야 하고, 파일 안의 모든 문자들을 지원하는 폰트를 사용해야 합니다.
파이썬을 상호대화적으로 사용한다면, 인터프리터가 기동할 때마다 몇가지 표준 명령어들을 실행시키는 것이 아주 편리할 때가 있습니다. 이렇게 하려면 PYTHONSTARTUP이라는 이름의 환경 변수에 시작-명령어가 담긴파일 이름을 지정하면 됩니다. 이것은 Unix 쉘의 .profile 특징과 비슷합니다.
이 파일은 상호대화 세션에서만 읽힙니다. 스크립트로부터 명령어를 읽거나 명령어 소스로 /dev/tty이 명시적으로 주어질 때는 그렇지 않습니다 (그렇지 않으면 마치 상호대화 세션인 것처럼 행동합니다). 이 파일은 상호대화 명령어가 실행되는 곳과 같은 이름공간에서 실행됩니다. 그래서 이 파일에서 정의하거나 반입한 객체들은 상호대화 세션에서 자격부여 없이 사용할 수 있습니다. 이 파일에서 프롬프트 sys.ps1과 sys.ps2를 바꿀 수도 있습니다.
현재 디렉토리에서 기동 파일을 추가로 읽고 싶다면, 이를 전역적 기동 파일에 "if os.path.isfile('.pythonrc.py'): execfile('.pythonrc.py')"와 같이 프로그램하면 됩니다. 기동 파일을 스크립트에 사용하고 싶다면, 스크립트에서 명시적으로 다음과 같이 하면 됩니다:
import os
filename = os.environ.get('PYTHONSTARTUP')
if filename and os.path.isfile(filename):
execfile(filename)