Python의 패키지에 대한 개념 및 활용방법에 대해 정리합니다.
패키지와 모듈 & 함수의 관계도
- 출처: pythonstudy.xyz
모듈 임포트
-
그동안 사용했던 함수들 처럼, 다양한 기능들이 미리 함수로 구현되어 모듈 형태로 제공되고 있다.
-
대표적으로 사용되는 모듈은 아래와 같다.
-
requests - HTTP 요청/응답 모듈
-
numpy - 수치해석 모듈
-
pandas - 데이터 분석 모듈
-
import 를 하는 이유?
- 기존에 다른 사람이 만들어 둔 유용한 모듈을 가져와서 쉽게 사용할 수 있기 때문
1
2
3
import requests # 추후에 정리할 웹 크롤링 에서 유용하게 사용되는 모듈 requests
resp = requests.get('http://naver.com') # Naver 메인페이지에서 정보를 request하여 get한다.
resp.text # get한 정보중 text를 출력한다.
1
2
3
<pre>
'\n<!doctype html> <html lang="ko" data-dark="false"> <head> <meta charset="utf-8"> <title>NAVER</title> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=1190"> <meta name="apple-mobile-web-app-title" content="NAVER"/> <meta name="robots" content="index,nofollow"/> <meta name="description" content="네이버 메인에서 다양한 정보와 유용한 컨텐츠를 만나 보세요"/> <meta property="og:title" content="네이버"> <meta property="og:url" content="https://www.naver.com/"> <meta property="og:image" content="https://s.pstatic.net/static/www/mobile/edit/2016/0705/mobile_212852414260.png"> <meta property="og:description" content="네이버 메인에서 다양한 정보와 유용한 컨텐츠를 만나 보세요"/> <meta name="twitter:card" content="summary"> <meta name="twitter:title" content=""> <meta name="twitter:url" content="https://www.naver.com/"> <meta name="twitter:image" content="https://s.pstatic.net/static/www/mobile/edit/2016/0705/mobile_212852414260.png"> <meta name="twitter:description" content="네이버 메인에서 다양한 정보와 유용한 컨텐츠를 만나 보세요"/> <link rel="stylesheet" href="https://pm.pstatic.net/dist/css/nmain.20210601a.css"> <link rel="stylesheet" href="https://ssl.pstatic.net/sstatic/search/pc/css/sp_autocomplete_210318.css"> <link rel="shortcut icon" type="image/x-icon" href="/favicon.ico?1"/> <link rel="apple-touch-icon" sizes="114x114" href="https://s.pstatic.net/static/www/u/2014/0328/mma_204243574.png"/> <link rel="apple-touch-icon" href="https://s.pstatic.net/static/www/u/2014/0328/mma_20432863.png"/>
</pre> #실제 html코드는 너무 길어서 생략
- 위 html 코드는 Naver 사이트에 접속했을때의 html을 표현한 것
import
- import를 사용하여 해당 모듈 전체를 import
1
import math
1
math.pi
3.141592653589793
1
math.cos(100)
0.8623188722876839
from import (패키지에서 import 하기)
-
해당 모듈 패키지에서 특정한 타입의 모듈만 import
-
이 경우 앞에 모듈명을 입력할 필요 없이 바로 사용할 수 있다.
-
패키지는 폴더 구조와 같은 것 즉 math라는 모듈 파일 안에 pi라는 패키지, cos라는 패키지 등이 있는 것
위에서는 math라는 모듈 패키지를 불러와서 그 아래 pi라는 세부 모듈을 불러와서 쓴것
1
2
3
from math import pi
from math import cos
#from math import sin
1
cos(100) # math.cos() 라고 쓰지 않아도 된다.
0.8623188722876839
* 임포트
-
해당 모듈내에 정의된 모든 것을 import
-
일반적으로 사용이 권장되지 않음
1
2
# sin 모듈 import없이 사용하면 에러가 발생
sin(100)
1
2
# 위에서 이미 불러온 math를 통하면 사용 가능
math.sin(100)
-0.5063656411097588
1
2
# math 모듈내에 정의된 모든 것을 import
from math import *
1
2
# from math import sin 이라고 따로 sin을 불러오지 않아도 사용 가능
sin(100)
-0.5063656411097588
1
math.e
2.718281828459045
1
e
2.718281828459045
* 임포트 를 권장하지 않는 이유?
1
2
3
4
5
from math import *
from a import *
로 2가지 모듈을 불러왔다고 했을때, 위의 예시 처럼 두 모듈에 모두 ‘e’라는 특정 모듈이 있으면 가장 최근에 불러온 모듈의 ‘e’로 덮어 씌워지기 때문이다.
별명(alias) 지어주기 : as
-
모듈 import 시, alias(별명) 지정가능
-
보통 패키지 이름이 너무 길때 약어 로 줄여서 사용.
-
실제 사용을 하다보면 동일 패키지를 계속 적어야 하는 경우가 많아서 편의성을 위해 사용
-
이 별칭을 지을땐 보통 as 를 붙여준다.
1
import pandas as pd # 판다스 패키지를 불러와서 pd라고 별명 지음
1
pd.DataFrame() # 판다스 패키지로 데이터프레임을 만드는 명령어
- 주의! : 코드를 다른사람과 공유하거나, 외부에 제출하는 경우가 많기 때문에 본인만 아는 별명 을 사용하는 것은 지양해야 한다.
- import pandas as pd 에서 ‘pd’는 국룰이다. 범용적으로 쓰이는 alias로 자신만의 편의를 위해 다른 alias를 사용한다면, 다른 사람들이 알아보지 못할 가능 성이 높다.
댓글남기기