ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [코딩도장] day32. 파이썬 모듈과 패키지 사용하기
    IT/파이썬 2020. 10. 6. 00:54

    출처 : unsplash

     

    ■ 들어가기

    - 파이썬 코딩 도장 (남재윤/길벗). 을 공부하며 정리하는 블로그


    ▶ 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.4142135623730951

     

    2. 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.4142135623730951

     

     

    3. 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
    200

     

    1. import as 로 패키지 모듈 이름 지정하기

    - 패키지 내 모듈도 as 를 사용하여 이름 지정 가능

    - 사용법 : import 패키지.모듈 as 이름

    >>> import urllib.request as r                  # 파이썬 표준 라이브러리에서 urllib 패키지 내 request 모듈 가져와 이름 지정
    >>> response = r.urlopen('http://www.google.co.kr')   # 이름 지정하여 코드가 줄어듦
    >>> response.status
    200

     

    2. 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
    200

     

    3. 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.py

     

    2. pip로 패키지 설치하기

    - 명령어 : pip install 패키지

    # 윈도우 기준 - 파이썬이 설치된 디렉토리 이동 후 아래 명령어로 수행
    c:\xxxxxxx>python -m pip install requests

     

    3. 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 패키지 : 패키지 삭제

     

    댓글

Designed by Tistory.