python

[python] 파이썬 자습서 2. 파이썬 인터프리터 사용하기

브.카 2022. 6. 17. 01:36

※ 공부하는 포스팅으로 틀린 것이나 맞지 않는 표현 있을 수 있습니다. 피드백받습니다!!

 

2.1. 인터프리터 실행하기

1. 파이썬 위치(경로)

python 인터프리터는 일반적으로 unix shell에서 /usr/local/bin/python3.10에 위치한다. 즉 /usr/local/bin/ 의 경로에 파이썬 관련 파일들이 이 위치에 설치되어 있고 우리는 파이썬을 쓸 때 위 경로에 있는 파이썬을 가져다 쓰게 되는 것이다.

 

하지만 파이썬의 디렉터리(경로)는 install 시 설치 옵션이기 때문에 다른 장소에 설치할 수도 있다 (예를 들어 /usr/local/python 도 널리 사용되는 경로이다). 이는 처음 파이썬을 설치할 때 확인해야 하는 부분이다. 또한 python은 여러 버전이 존재한다. 즉 경로 /usr/local/bin/ 에 다른 파이썬의 버전이 존재할 수도 있다. 이 또한 install 할 때 결정되거나 이미 설치되어 있는 파이썬 버전 확인을 통해 확인이 가능하다. 

 

 

2. 인터프리터

인터프리터는 GNU Readline 라이브러리를 지원하는 시스템에서 줄 편집 기능으로 대화형 편집, 히스토리 치환, 코드 완성 등을 제공한다. 

 

GNU Readline 라이브러리 명령 줄 인터페이스에서 줄 편집 및 입력 기록 저장 등의 역할을 하는 라이브러리이며 GNU 프로젝트에 속해 있다. GNU readline은 입력 자동 완성, 커서 이동 잘라내기, 복사, 붙여넣기 등의 기능을 지원하며, Bash 등의 명령 줄 기반 인터렉티브 소프트웨어에서 사용된다.

 

입력 키에 대한 소개 부록 : https://docs.python.org/ko/3.10/tutorial/interactive.html#tut-interacting

(나중에 다시 보자)

 

인터프리터는 어느 정도 유닉스 셸처럼 동작한다: tty 장치에 표준 입력이 연결된 상태로 실행되면, 대화형으로 명령을 읽고 실행한다; 파일명을 인자로 주거나 파일을 표준 입력으로 연결한 상태로 실행되면 스크립트를 읽고 실행한다.

tty 장치 문자별로 입력과 출력을 수행하는 문자 장치, 터미널 장치와 이장치에 읽고 쓰는 프로그램 사이의 통신은 tty 인터페이스로 제어된다. ex) 모뎀, ASCII 터미널, 시스템 콘솔(LFT), AIXwindows의 aixterm

 

 

3. window cmd에서 파이썬 인터프리터 실행

- 윈도 용 파이썬 런처는 다양한 파이썬 버전을 찾고 실행하는 데 도움이 되는 유틸리티이다. 스크립트(또는 명령줄)가 특정 파이썬 버전에 대한 선호를 나타내도록 허용하고, 해당 버전을 찾아 실행한다.

 

유틸리티 : 시스템 소프트웨어 중 컴퓨터를 관리하거나, 정상적으로 돌아가도록 유지하는 소프트웨어
ex) 보안 프로그램, 최적화 프로그램, 파일 관리자, 복원 소프트웨어, 유해매체 필터링 소프트웨어

 

  • 파이썬 인터프리터 실행 방법

< py 입력시 실행된 cmd 창 >

 

기존 c드라이브 위치에 파이썬 3.10.2를 설치해놓았기 때문에 py를 cmd에 입력하면 파이썬 3.10.2 버전으로 실행된다.

>>> 에서 나가고 싶다면 기본 프롬프트에서 EOF(end-of-file) 문자(유닉스에서는 Ctrl-D, 윈도우에서는 Ctrl-Z)를 입력하면 인터프리터가 종료하고, 종료 상태 코드는 0이 된다. 이 방법이 통하지 않으면 exit() or quit()를 입력하면 파이썬 인터프리터 환경에서 나갈 수 있다.

 

< py -2 를 입력시 >

 

내 컴퓨터에는 파이썬 버전 2가 설치가 되어있지 않기 때문에 3.10-64 버전만 찾았다고 나오고 버전 2는 찾을 수 없다고 나오게 된다. (여기서 왜 3.10.2 가 아닌 3.10-64* 로 출력되는지는 잘 모르겠다.)

 

< py --list 입력시 >

 

window에서 파이썬 설치된 버전을 확인하기 위해 위의 명령어를 입력하여 확인한다. 내 컴퓨터에서는 3.10-64* 로 확인된다. 

 

  • 다른 파이썬 인터프리터 실행방법
python -인자값
  • - c : command로 호출되면 command로 주어지는 파이썬 문장을 실행한다. 여기서 command는 개행 문자로 구분된 여러 개의 문장을 포함할 수 있다.
  • - m : module-name으로 호출되면, 주어진 모듈을 파이썬 모듈 경로에서 찾은 후에 스크립트로 실행한다.
  • script file : 지정한 스크립트 파일에 저장된 파이썬 코드를 실행한다.
    script는 파이썬 파일이나 __main__. py 파일이 들어있는 디렉터리나 __main__.py 파일을 포함하는 zip 파일을 가리키는 파일 시스템 경로(절대 or 상대) 여야 한다.

 

window cmd에서 python 입력후 python 인터프리터 실행시 마이크로소프트 스토어로 넘어가는 문제는 블로그 하단에 적어놓았다.

 

  • 대화형 모드

명령을 tty에서 읽을 때, 인터프리터가 대화형 모드로 동작한다고 말한다. 이 모드에서는 기본 프롬프트를 표시해서 다음 명령을 요청하는데, 보통 세 개의... 보다 크다 기호 (>>>)이다. 한 줄로 끝나지 않고 이어지는 줄의 입력을 요청할 때는 보조 프롬프트 기호가 사용되는데, 기본적으로 세 개의 점(...)이다. 

 

< (>>>) 입력 기호 >

 

< if문 입력 및 출력 >

 

 

2.2. 인터프리터와 환경

1. 소스 코드 인코딩

기본적으로 파이썬 소스 파일들은 UTF-8으로 인코드 된 것으로 취급한다. 이 인코딩에서는 대부분 언어에서 사용되는 문자들을 문자열 상수, 식별자, 주석 등에서 함께 사용할 수 있다.

(하지만 표준 라이브러리는 오직 ASCII 문자만 식별자로 사용하고 있는데, 범용 코드에서는 이 관례를 따르는 것이 좋다고 한다.)

구글링을 해보니 python version 2에서는 인코드 값이 ASCII로 되어있어 한글을 인식하지 못하였다고 한다. 그래서 코드상에서 한글을 사용 가능하게 하기위해 인코드 값을 UTF-8으로 변경해주어 한글을 코드상에서 사용할수있게 했다고 한다. 하지만 python version 3에서는 인코드 기본값이 UTF-8로 이루어져 있어 위 처리를 따로 하지 않아도 한글이 사용가능하게 되었다고 한다.

 

인코딩을 기본값 외의 것으로 선언하려면 파일의 첫 줄에 특별한 형태의 주석 문을 추가해야 한다.

  • 문법
# -*- coding: encoding -*-

위의 encoding 부분에 파이썬이 지원하는 코덱(codecs)중 하나여야 한다.
표준 인코딩 : https://docs.python.org/ko/3.10/library/codecs.html#standard-encodings

 

예를 들어, windows-1252 인코딩을 사용하도록 선언하려면, 소스 코드 파일의 첫 줄은

# -*- coding: cp1252 -*-

이여야 한다.

 

첫 줄 규칙의 한 가지 예외는 소스 코드가 유닉스 "셔뱅 (shebang)" 줄로 시작하는 경우이다. 이때, 인코딩 선언은 두 번째 줄에 들어간다.

#!/usr/bin/env python3
# -*- coding: cp1252 -*-

셔뱅(shebang) 은 파이썬 스크립트 파일이 어떤 python 버전을 사용할지를 명시해줌으로써 파이썬 스크립트가 파이썬 인터프리터의 위치를 찾아서 실행하도록 한다.

 

셔뱅(shebang)은 제 블로그 : https://cow97.tistory.com/33

에 설명이 있습니다.

 

 

※ Window cmd에서 python 입력 시 Microsoft Store 열리는 문제

여기서 리눅스와 같은 곳에서 파이썬을 확인하거나 파이썬을 실행할 때는 python 전체를 입력하여서 실행한다. 그래서 당연히 window에서도 처음 실행 시 python 전체를 입력하여 python을 실행하려고 시도하였다. 하지만 마이크로소트 스토어가 열리면서 정작 파이썬 인터프리터 환경으로 들어가지 못하였다. 이는 신규 사용자가 python을 올바르게 설치하도록 도와주기 위해 Microsoft Store에 게시된 최신 버전 python 커뮤니티 패키지로 바로 이동하는 바로가기가 Window에 추가되었기 때문이다.

 

※ python으로 임시적으로 입력하고 싶다면 밑과 같은 방법으로 path 설정으로 가능 -> 환경변수 설정하기 참고!

C:\>set PATH=C:\Program Files\Python 3.9;%PATH%
C:\>set PYTHONPATH=%PYTHONPATH%;C:\My_python_lib
C:\>python

 

python으로 영구적으로 수정하려면 시스템 변수의 변경이 필요하다.

 

 

Reference

 

 

 

 

  • TTY 터미널 장치 : https://www.ibm.com/docs/ko/aix/7.1?topic=communications-tty-terminal-device