본문으로 바로가기

[Python] 모듈

category Data Science/Python 2015.02.16 17:57

파이썬 3.0 버전에서는 대략 200개가 넘는 모듈을 지원합니다.

→ 문자열(string), 날짜(date), 시간(time), 십진법(decimal), 랜덤(random)

→ 파일(file), os, sqlite3, sys, mcml, email, http 등등

 

파이썬에서 모듈을 사용하는 이유는 다른언어와 마찬가지로 코드를 더 쉽게 관리하고 공유한다는 목적에 있습니다.

● 코드의 재 사용성

● 코드를 이름공간으로 구분하고 관리

● 복잡하고 어려운 기능을 포함하는 프로그램을 간단하게 개발

 

모듈은 "import"라는 구문을 사용하여 불러 올수 있습니다.

내장 모듈인 math를 import하고 그안에 존재하는 함수를 이용하여 삼각함수, 제곱근, 로그함수등 수학과 관련된 기능을 쉽게 사용합니다.

>>>import math
>>>main.pow(210)
1024.0
>>>math.pi
3.1415926535897931
 
 
cs

또한 dir() 함수를 사용해 모듈에 어떠한 함수 혹은 데이터가 들어있는지도 알수 있습니다.

>>> dir(math)
['__doc__''__loader__''__name__''__package__''__spec__''acos''acosh''asin''asinh''atan''atan2''atanh''ceil''copysign''cos''cosh''degrees''e''erf''erfc''exp''expm1''fabs''factorial''floor''fmod''frexp''fsum''gamma''hypot''isfinite''isinf''isnan''ldexp''lgamma''log''log10''log1p''log2''modf''pi''pow''radians''sin''sinh''sqrt''tan''tanh''trunc']
 
cs

 

모듈 만들기

사용자가 직접 모듈을 만들수 있는데 일반적으로 <모듈이름>.py로 지정합니다.

 

샘플로 helloname이라는 모듈을 만들어 보겠습니다.

#helloname.py 

def hello_msg(name):
    print("hello " + name)

 

F5를 누르면 Shell창에 ======== RESTART ========  라는 메시지가 나오고 해당 모듈을 import하여 함수를 호출할 수 있습니다.

>>> ================================ RESTART ================================
>>> 
>>> import helloname
>>> hello_msg("Python")
hello Python
>>> 
 
cs

 

이번엔 모듈을 패키지로 등록하여 사용하는 사용하는 방법을 알려드리겠습니다.

 

helloname이란 폴더를 만들고 그안에 helloname.py파일을 넣어 둡니다.

그리고 helloname 폴더에 setup.py라는 파일을 만드세요.

from distutils.core import setup

setup(
     name              = 'helloname',
     version           = '1.0.0',
     py_modules     = ['helloname'],
     author             = 'devtimes',
     author_email    = 'devtimes@devtimes.com',
     url                  = 'www.devtimes.com',
     description      = 'test module'

 

from distutils.core import setup : 파이썬 배포 유틸리티에서 setup 함수를 임포트 합니다.

py_modules : 모듈에 대한 메타데이터를 setup 함수의 인자로 호출합니다.

 

이제 배포패키지를 만들준비가 끝났습니다.

명령프롬프트 상에서 해당폴더로 이동하여 아래와 같은 명령어를 사용하여 설치 할수 있습니다.

설치가 되면 이제 import helloname 으로 언제든 사용이 가능합니다.

 

이와 같은 방법으로 PyPI(http://pypi.python.org/)에 패키지를 등록할 수 있고 다른사람이 공유한 패키지 또한 자신의 파이썬에 설치 할수가 있게 되는것입니다.

 

모듈의 경로

파이썬은 모듈을 임포트 했을때 sys,path에 저장되어 있는 디렉토리를 검색합니다. 모듈의 경로 밖의 모듈은 임포트가 불가능합니다.

 

모듈 경로 탐색 순서

- 프로그램이 실행된 디렉터리

- PYTHONPATH 환경 변수에 등록된 위치

- 표준 라이브러리 디렉터리

 

모듈 임포트 방법

모듈을 임포트 하는 방법에는 몇가지 방법이 더 있습니다.

 

from <모듈> import <어트리뷰트>

form <모듈> import *

import <모듈> as <별칭>

 

내부적으로 모듈을 임포트할때 해당 모듈의 바이트 코드가 있으면 이를 임포트하고 (속도가 더 빠름), 모듈이 임포트 되어 모듈 코드가 로딩되면 프로그램이나 파이썬 인터프리터가 끝나기 전까지 변경되지 않습니다.

여기서 바이트코드란, 일종의 중간 파일인데요, 모듈의 임포트를 빠르게 해주는 역할을 합니다.

바이트 코드가 이미 있으면 모듈을 인터프리팅(Interpretiong)하지 않고 바로 바이트코드를 로딩하게 됩니다.

 

 

 

'Data Science > Python' 카테고리의 다른 글

[Python] 파일 데이터 저장하기  (0) 2015.02.27
[Python] 파일과 예외  (0) 2015.02.23
[Python] 모듈  (0) 2015.02.16
[Python] 함수  (0) 2015.02.16
[Python] 리스트  (0) 2015.02.16
[Python] 시퀀스 자료형  (0) 2015.02.13

댓글을 달아 주세요