-
[코딩도장] day32. 파이썬 모듈과 패키지 사용하기IT/파이썬 2020. 10. 6. 00:54
■ 들어가기
- 파이썬 코딩 도장 (남재윤/길벗). 을 공부하며 정리하는 블로그
▶ Unit44. 모듈과 패키지 사용하기
- 44.1 import로 모듈 가져오기
- 44.2 import로 패키지 가져오기
- 44.3 파이썬 패키지 인덱스에서 패키지 설치하기
0. 들어가기
- 모듈(module)은 각종 변수, 함수, 클래스를 담고 있는 파일
- 패키지(package)는 여러 모듈을 묶은 단위
- 파이썬 설치 시 기본 설치되는 모듈과 패키지 외에 다른 사람이 만든 모듈 패키지 설치하여 사용 가능
[정리]
- 모듈 : 특정 기능을 .py 파일 단위로 작성
- 패키지 : 특정 기능과 관련된 여러 모듈을 묶은 것. 패키지는 모듈에 네임스페이스(namespace)를 제공
- 파이썬 표준 라이브러리(PSL) : 파이썬에 기본으로 설치된 모듈, 패키지, 내장 함수를 묶어서 지칭
>> 44.1 import로 모듈 가져오기 <<
- 모듈은 import 키워드로 가져옴 (여러 모듈 가져올 때는 콤마로 구분)
- 사용법
import 모듈
import 모듈1, 모듈2
모듈.변수
모듈.함수()
모듈.클래스()
1. import as 로 모듈 이름 지정하기
- 사용법 : import 모듈 as 이름
>>> import math as m
>>> m.sqrt(4.0)
2.0
>>> m.sqrt(2.0)
1.41421356237309512. from import로 모듈의 일부만 가져오기
- 모듈 내에서 원하는 변수 가져오기
- 사용법 : from 모듈 import 변수
>>> from math import pi # math 모듈에서 변수 pi만 가져옴
>>> pi # pi를 바로 사용하여 원주율 출력
3.141592653589793- 모듈 내에서 함수, 클래스 가져오기
- 사용법 :
from 모듈 import 함수
from 모듈 import 클래스
>>> from math import sqrt # math 모듈에서 sqrt 함수만 가져옴
>>> sqrt(4.0) # sqrt 함수를 바로 사용
2.0
>>> sqrt(2.0) # sqrt 함수를 바로 사용
1.4142135623730951- 모듈 내에서 변수, 함수, 클래스를 여러 개 가져올 경우 ,(콤마) 로 구분하여 지정
- 사용법 : from 모듈 import 변수, 함수, 클래스
>>> from math import pi, sqrt # math 모듈에서 pi, sqrt를 가져옴
>>> pi
3.141592653589793 # pi 로 원주율 출력
>>> sqrt(4.0) # sqrt 함수 사용
2.0
>>> sqrt(2.0) # sqrt 함수 사용
1.4142135623730951- 모듈의 모든 변수, 함수, 클래스를 가져오는 기능
- 사용법 : from 모듈 import *
>>> from math import * # math 모듈의 모든 변수, 함수, 클래스를 가져옴
>>> pi # pi 로 원주율 출력
3.141592653589793
>>> sqrt(4.0) # sqrt 함수 사용
2.0
>>> sqrt(2.0) # sqrt 함수 사용
1.41421356237309513. from import로 모듈의 일부를 가져온 뒤 이름 지정하기
- from import는 모듈에서 원하는 변수, 함수, 클래스를 가져오기 위해 사용했음
- 가져온 변수, 함수, 클래스에 as로 이름 지정
- 사용법 :
from 모듈 import 변수 as 이름
from 모듈 import 함수 as 이름
from 모듈 import 클래스 as 이름
>>> from math import sqrt as s # math 모듈에서 sqrt 함수를 가져오면서 이름을 s로 지정
>>> s(4.0) # s 로 sqrt 함수 사용
2.0
>>> s(2.0) # s 로 sqrt 함수 사용
1.4142135623730951- 여러 개 가져올 경우 ,(콤마)로 구분하여 as를 여러 개 지정하면 됨
- 사용법 :
from 모듈 import 변수 as 이름1, 함수 as 이름2, 클래스 as 이름3
>>> from math import pi as p, sqrt as s # 변수 pi를 p, 함수 sqrt 를 s 로 이름 지정
>>> p # p 로 원주율 출력
3.141592653589793
>>> s(4.0) # s 로 sqrt 함수 사용
2.0[참고] 가져온 모듈 해제, 다시 가져오기
- import 로 가져온 모듈(변수, 함수, 클래스)은 del 로 해제 가능
>>> import math
>>> math.sqrt(4.0)
2.0
>>> del math # import 한 모듈 삭제
>>> math.sqrt(4.0) # 삭제한 모듈 호출로 인한 NameError 발생
Traceback (most recent call last):
File "<pyshell#19>", line 1, in <module>
math.sqrt(4.0)
NameError: name 'math' is not defined
>>> import importlib # 모듈을 다시 가져오기 위해 importlib.reload를 사용함
>>> import math
>>> importlib.reload(math)
<module 'math' (built-in)>
>>> math.sqrt(4.0)
2.0-> 그런데 del 로 모듈 삭제했더라도 다시 import 하면 되는거 아닌가? 왜 importlib를 사용하는거지???
>> 44.2 import로 패키지 가져오기 <<
- 패키지 : 특정 기능과 관련된 여러 모듈을 묶은 것
- 패키지에 들어있는 모듈도 import를 사용하여 가져옴
- 패키지 내 모듈 가져올 경우 : 패키지.모듈 형식
- 모듈 내 함수 사용할 경우 : 패키지.모듈.함수() 형식
>>> import urllib.request # 파이썬 표준 라이브러리에서 urllib 패키지의 requset 모듈 가져오기
>>> response = urllib.request.urlopen('http://www.google.co.kr')
>>> response.status
2001. import as 로 패키지 모듈 이름 지정하기
- 패키지 내 모듈도 as 를 사용하여 이름 지정 가능
- 사용법 : import 패키지.모듈 as 이름
>>> import urllib.request as r # 파이썬 표준 라이브러리에서 urllib 패키지 내 request 모듈 가져와 이름 지정
>>> response = r.urlopen('http://www.google.co.kr') # 이름 지정하여 코드가 줄어듦
>>> response.status
2002. from import 로 패키지의 모듈에서 일부만 가져오기
- 변수, 함수, 클래스 추출 가능
- 사용법
from 패키지.모듈 import 변수
from 패키지.모듈 import 함수
from 패키지.모듈 import 클래스
from 패키지.모듈 import 변수, 함수, 클래스
>>> from urllib.request import Request, urlopen # urllib.request에서 Request 클래스, urlpoen 함수를 가져옴
>>> req = Request('http://www.google.co.kr') # Request 클래스를 사용하여 req 생성
>>> res = urlopen(req) # urlopen 함수 사용
>>> res.status
200- 패키지 내 모듈에서 모든 변수, 함수, 클래스를 가져오는 방법 : from 패키지.모듈 import *
>>> from urllib.request import * # urllib의 request 모듈에서 모든 변수, 함수, 클래스 가져옴
>>> req = Request('http://www.google.co.kr') # Request 클래스를 사용하여 req 생성
>>> res = urlopen(req) # urlopen 함수 사용
>>> res.status
2003. from import 로 패키지의 모듈 일부를 가져온 뒤 이름 지정하기
- 이름 지정할 때는 어떻게 쓴다?? as !!
- 사용법
from 패키지.모듈 import 변수 as 이름
from 패키지.모듈 import 변수 as 이름, 함수 as 이름, 클래스 as 이름
>>> from urllib.request import Request as r, urlopen as u # Request를 r로, urlopen을 u로 이름 지정
>>> req = r('http://www.google.co.kr')
>>> res = u(req)
>>> res.status
200>> 44.3 파이썬 패키지 인덱스에서 패키지 설치하기 <<
- 파이썬은 '파이썬 표준 라이브러리(Python Standard Library, PSL)' 외에 '파이썬 패키지 인덱스(Python Package Index, PyPI)' 를 통해 다양한 패키지 사용가능함
1. pip 설치하기
- pip는 파이썬 패키지 인덱스의 패키지 관리 명령어
- windows용 파이썬에는 기본 내장되어 있고, 리눅스/맥OS에서는 콘솔에서 다음의 명령어로 설치 가능
$ curl -o https://bootstrap.pypa.io/get-pip.py
$ sudo python3 get-pip.py2. pip로 패키지 설치하기
- 명령어 : pip install 패키지
# 윈도우 기준 - 파이썬이 설치된 디렉토리 이동 후 아래 명령어로 수행
c:\xxxxxxx>python -m pip install requests3. import로 패키지 가져오기
- 사용법 : import 패키지
>>> import requests # pip로 설치한 requests 패키지 가져옴
>>> r = requests.get('http://www.google.co.kr') # requests.get 함수 사용
>>> r.status_code
200- pip install 명령어로 설치한 패키지는 위와 같이 import 패키지 또는 import 패키지.모듈 형식으로 사용 가능
[참고] 패키지 검색, 버전 지정, 목록 출력, 삭제
pip search 패키지 : 패키지 검색
pip install 패키지==버전 : 특정 버전의 패키지 설치 (ex. pip install reqeusts==2.9.0)
pip list 또는 pip freeze : 패키지 목록 출력
pip uninstall 패키지 : 패키지 삭제
'IT > 파이썬' 카테고리의 다른 글
[코딩도장] day34. 파이썬: (실전예제) 웹의 데이터로 그래프 그리기 (0) 2020.10.10 [코딩도장] day33. 파이썬: 모듈과 패키지 만들기 (0) 2020.10.09 [코딩도장] day30. 파이썬 정규표현식 사용하기 - re, *, +, match (0) 2020.09.29 [코딩도장] day29. 파이썬 데코레이터(2/2) (0) 2020.09.26 [코딩도장] day28. 파이썬 데코레이터(1/2) - @데코레이터, def데코레이터 (0) 2020.09.22