Unit 12. 모듈과 패키지 사용하기

지금까지 파이썬 코드를 작성하면서 input, print 등의 내장 함수(built-in function)를 사용했는데 내장 함수만으로는 할 수 있는게 별로 없습니다. 그래서 좀더 복잡한 프로그램을 만들려면 파이썬의 모듈과 패키지를 사용해야 합니다.

모듈은 각종 데이터와 함수를 담고 있는 파일이며 파이썬을 설치할 때 다양한 모듈이 기본적으로 설치됩니다. 만약 기본 모듈만으로는 부족하다면 다른 사람들이 만들어 놓은 유명 모듈과 패키지를 설치해서 쓸 수도 있습니다.


참고 | 모듈, 패키지, 라이브러리

파이썬을 배우다 보면 모듈, 패키지, 라이브러리와 같은 용어를 접하게 되는데 서로 비슷한 개념이지만 약간의 차이가 있습니다.

  • 모듈: 특정 기능을 .py 파일 단위로 작성한 것입니다.

  • 패키지: 특정 기능과 관련된 여러 모듈을 묶은 것입니다. 보통 인터넷에 있는 패키지를 설치해서 사용합니다.

  • 라이브러리: 파이썬에 기본적으로 설치된 모듈과 내장 함수를 묶어서 파이썬 표준 라이브러리(Python Standard Library, PSL)라 부릅니다.

12.1 import로 모듈 가져오기

모듈은 import 키워드로 가져올 수 있습니다(모듈을 여러 개 가져올 때는 모듈을 콤마로 구분).

  • import 모듈
  • import 모듈1, 모듈2

그럼 간단하게 파이썬 표준 라이브러리의 수학 모듈 math를 가져와서 원주율을 출력해보겠습니다.

>>> import math
>>> math.pi
3.141592653589793
import에 모듈 이름을 지정하면 해당 모듈을 가져올 수 있으며 math.pi와 같이 모듈.변수 형식으로 모듈의 변수를 사용합니다.

이번에는 math 모듈의 제곱근 함수 sqrt를 사용해보겠습니다(sqrt는 제곱근을 뜻하는 square root을 줄인 말입니다).

>>> import math
>>> math.sqrt(4.0)
2.0
>>> math.sqrt(2.0)
1.4142135623730951

모듈의 함수는 math.sqrt(4.0)와 같이 모듈.함수() 형식으로 사용합니다.

import는 패키지의 모듈도 가져올 수 있는데 이번에는 파이썬 표준 라이브러리의 urllib 패키지에서 request 모듈을 가져와보겠습니다(urllib은 URL 처리에 관련된 모듈을 모아 놓은 패키지입니다).

  • import 패키지.모듈
  • import 패키지.모듈1, 패키지.모듈2
>>> import urllib.request
>>> response = urllib.request.urlopen('http://www.google.co.kr')
>>> response.status
200

패키지에 들어있는 모듈은 import urllib.request와 같이 패키지.모듈 형식으로 가져옵니다. 마찬가지로 모듈의 함수를 사용할 때도 urllib.request.urlopen과 같이 패키지.모듈.함수() 형식으로 패키지 이름과 모듈 이름을 모두 입력해줍니다.

urllib.request.urlopen은 URL을 여는 함수인데 URL 열기에 성공하면 response.status의 값이 200이 나옵니다(200은 HTTP 상태 코드이며 서버가 요청을 제대로 처리했다는 뜻입니다).

  • ModuleNotFoundError: No module named ...: 모듈의 이름이 잘못되었을 때 발생하는 에러입니다. 모듈 이름이 맞는지 확인해주세요.

  • AttributeError: module ... has no attribute ...: 모듈의 함수나 변수의 이름을 잘못되었을 때 발생하는 에러입니다. 함수, 변수의 이름이 맞는지 확인해주세요.

최근 수정: 2018년 4월 6일, 금요일, 오전 10:49