오늘 당장 IDLE을 실행해 보려 했는데, 계획이 조금 바뀌었다. 파이썬 매뉴얼 목차를 보는데 "Using Python On Windows"라는 항목이 눈에 띄었기 때문이다. 내용을 살펴보니 다른 것은 특별히 신경 쓸 부분이 없었는데, "Configuring Python"이라는 세부 항목은 자세히 들여다 봐야 할 것 같았다. 자바 SDK도 설치하고 나면 CLASS_PATH니 PATH니 하는 것을 따로 설정해줘야 했는데, 파이썬도 그런 것이 있을 것 같다(나는 지금 윈도우 비스타를 사용하고 있음을 기억해달라.).

파이썬을 위해 따로 만져줘야 하는 환경변수는 딱 2개다. 하나는 PYTHONPATH이고, 하나는 PATH다. 파이썬은 설치할 때 기본 라이브러리가 함께 설치된다. 파이썬을 C:\Python\에 설치했다면, 기본 라이브러리는 C:\Python\Lib\에 설치된다. 기본 라이브러리의 위치는 이처럼 정해져 있기 때문에, 파이썬에서 기본 라이브러리를 사용할 때에는 따로 라이브러리가 존재하는 위치를 알려줄 필요가 없다. 써드 파티 라이브러리의 위치도 정해져 있다. C:\Python\site-packages\ 디렉토리가 그것이다. 하지만 내가 만든 라이브러리나 또 다른 사람이 만든 라이브러리를 별도의 디렉토리에 저장해 뒀다면, PYTHONPATH에 해당 디렉토리의 경로를 추가해줘야 한다.

PATH는 명령 프롬프트에서 파이썬 프로그램을 실행할 때 필요하다. Python command line의 실행 파일 이름은 python.exe인데, 명령 프롬프트를 열고 이를 실행하려 하면 다음과 같은 에러 메시지를 뱉는다.

PATH에 파이썬이 설치되어 있는 디렉토리를 추가하고 다시 명령 프롬프트를 실행하니 python 명령어를 사용할 수 있게 됐다.

매뉴얼을 조금 더 읽어 내려가다 보니 "Executing Scripts"라는 항목이 보인다. 여기에서는 파이썬 스크립트만으로도 자체 실행 가능하도록 환경을 구성하는 방법에 대해 설명한다. 원래 파이썬 스크립트는 python.exe를 이용해서 다음과 같이 실행한다. 스크립트 이름이 a.py라면

> python a.py

와 같다. 그런데 지금부터 설명하는 내용대로 환경을 구성하면 다음과 같이 파이썬 스크립트를 실행할 수 있다.

> a.py

설정은 Assoc 명령어와 ftype 명령어를 이용한다. 사실 나도 윈도우에 이런 명령어가 있었나 싶었다. 자주 사용하는 명령어는 아니니 그냥 시키는 대로 해보자.

  1. 명령 프롬프트를 띄우고
  2. .py 확장자를 가진 스크립트를 Python 파일 그룹에 연결한다.
    > assoc .py=Python.File
  3. Python 파일들을 pythonw에 리다이렉트 시킨다.
    > ftype Python.File=C:\파이썬디렉토리\pythonw.exe "%1" %*

이 절차를 그대로 해봤다. (Prompt $G는 프롬프트 앞에 표시되는 경로 때문에 명령어가 한 줄에 표시되지 않아 이를 제거하기 위해 실행한 것이다. 안해도 무방하다.) 이제는 파이썬 스크립트 만으로도 실행이 될 것이다.

매뉴얼에 재미있는 내용들이 계속 나온다. 이번에는 "Additional Modules"란다. 윈도우용 파이썬에는 다음 세 가지 모듈이 더 제공된다.

  1. PyWin32 : COM, Win32 API 호출, Registry 다루기, Event Log, MFC UI(!!!!!)를 파이썬에서 사용할 수 있도록 해준다. 나 조금 감동+충격 먹었다.
  2. Py2Exe : 파이썬 스크립트를 윈도우 실행파일인 exe로 "컴파일" 해주는 유틸리티다. 이걸 이용하면 파이썬 인터프리터가 없는 곳에 실행파일만 배포할 수 있다. 감동 백배다.
  3. WConio : 윈도우 콘솔 I/O를 파이썬에서 접근할 수 있도록 해준다. 터보C의 CONIO.H를 파이썬에서 사용할 수 있도록 포장했다고 한다. 옛날 콘솔 UI를 화려하게 다루던 형님들에게 반가운 존재일 것 같다.

매뉴얼을 더 내려봤더니 파이썬(인터프리터) 소스 코드를 윈도우에서 컴파일 하는 방법이 나온다. 나하고는 별로 관계 없는 내용이므로 패스해도 괜찮을 것 같다. 아 이제 정말 내일부터는 IDLE하고 놀 수 있으면 좋겠다.

Posted by seanlab

Trackback Address :: http://www.seanlab.net/trackback/6 관련글 쓰기

댓글을 달아 주세요