모듈과 패키지
참고도서 : 데이터 과학을 위한 파이썬 프로그래밍, 최상철
모듈과 패키지의 이해
- 모듈의 개념→ 하나하나 연결해 어떤 목적을 가진 프로그램을 만들기 위한 작은 프로그램인터페이스? 해당 모듈을 사용하기 위해서는 모듈 간의 연결을 위한 약속random 모듈 : 난수를 쉽게 생성시켜주는 모듈
- import random random.randint(l, 1000) # 198
- 파이썬에서의 모듈
- 각 모듈마다 저마다 역할이 있어 서로 다른 모듈과 인터페이스만 연결되면 사용할 수 있다.
- 작은 프로그램 조각
- 패키지의 개념from 키워드 사용 : 모듈을 호출하기 위해 패키지부터 호출
- 모듈의 묶음
모듈 만들기
- 모듈 만들기 실습다른 파이썬 파일이나 파이썬 셸에서 import문을 사용하여 해당 모듈의 함수를 쉽게 불러낼 수 있다.
<aside> 💡 호출받는 모듈과 호출하여 사용하는 클라이언트 프로그램이 같은 디렉터리 안에 있어야 한다import fah_converter print("Enter a Celsius value:") Celsius = float(inputO) fahrenheit = fah_converter.covert_c_to_f(celsiiis) # covert_c_to_f() 함수 사용 print("That’s", fahrenheit, "degrees Fahrenheit.") # 'module_ex.py'로 저장
- </aside>
- def covert_c_to_f(celcius_value): return celcius_value *9.0/5+32 # 'fah_converter.py'로 저장 -> fah_converter가 모듈
- 파이썬에서는 .py 파일 자체가 모듈이다. 가장 쉽게 파이썬 모듈을 만드는 방법: 현재 실습중인 디렉터리에서 .py 파일을 하나 만들고, 그 파일에 필요한 함수를 저장
- 네임스페이스클라이언트 프로그램의 함수 이름과 호출된 모듈의 함수 이름이 같은 경우 사용
- 네임 스페이스 만드는 법
- 모듈 이름에 알리아스(alias)를 생성하여 모듈 안으로 코드를 호출하는 방법 > 가장 선호하는 방법
- from 구문을 사용하여 모듈에서 특정 함수 또는 클래스만 호출하는 방법
‘from 모듈명 import 모듈 안에 있는 함수명’의 형태로 작성<aside> 💡 from은 꼭 모듈을 호출하기 위한 키워드가 아니다패키지를 호출하거나 해당 패키지 안에 있는 모듈을 호출할 때도 from 키워드를 사용할 수 있다from fah_converter import covert_c_to_f print(covert_c_to_f(41.6))
- 해당 모듈 안에 있는 모든 함수, 클래스, 변수를 가져오는 별표(*)를 사용
from fah_converter import print(covert_c_to_f(41.6))
- ‘from 모듈명 import 수’: 해당 모듈 안에 있는 모든 사용 가능한 리소스를 호출
- </aside>
- : 해당 모듈 안에 있는 함수를 가져다 사용할 수 있다. (별도의 모듈명을 써 주지 않아도 단독 사용 가능)
- import fah_converter as fah print(fah.covert_c_to_f(41.6))
- 네임 스페이스 만드는 법
- 모듈 호출의 범위를 지정하는 것
- 내장 모듈의 사용
- random 모듈
import random print(random.randint (0, 100)) # 0-100 사이의 정수 난수를 생성 print(random.random()) # 일반적인 난수 생성
- time 모듈
import time print(time.localtimeO) # 현재 시각 출력
- urllib 모듈
import urllib.request response = urllib.request.urlopen("http://theteamlab.io") print(response.read())
- 대표적으로 urllib의 request 모듈을 사용하면 특정 URL의 정보를 불러올 수 있다.
- 대표적으로 프로그램이 동작하는 현재 시각을 알 수 있다.
- 정수 모듈을 생성하는 randint() 함수 / 임의의 난수를 생성하는 random() 함수가 있다
패키지 만들기
- 패키지의 구성즉, 여러 개의 .py 파일이 하나의 디렉터리에 들어가 있는 것을 ‘패키지’라고 한다.<aside> 💡 파일명 자체가 예약어를 반드시 지켜야만 실행되는 경우가 있다.따라서 패키지 내의 몇몇 파일에는 _ _ init _ , _ _ main _ 등의 키워드 파일명이 사용된다.
- </aside>
- 파이썬의 모듈을 구성할 때와 마찬가지로 패키지에도 예약어가 있다.
- 패키지 : 하나의 대형 프로젝트를 수행하기 위한 모듈의 묶음 모듈은 하나의 파일로 이루어져 있고, 패키지는 파일이 포함된 디렉터리(폴더)로 구성된다.
- 패키지 만들기 실습
- 1단계 : 디렉터리 구성하기
- crawling(크롤링): 주식 관련 데이터를 인터넷에서 가져오는 기능
- database(데이터베이스): 가져온 데이터를 데이터베이스에 저장하는 기능
- analysis(분석): 해당 정보를 분석하여 의미 있는 값을 뽑아내는 기능
mkdir roboadvisor cd roboadvisor mkdir crawling mkdir database mkdir analysis
- 2단계 : 디렉터리별로 필요한 모듈 만들기
def series_test(): print("series")
실제로 사용하기 위해서는 파이썬 셸에서 다음과 같이 입력한다.</aside>def statics_test(): print("statics")
- 3단계 : 디렉터리별로 _ _init _ _.py 구성하기
- 4단계: _ _ main _ _.py 파일 만들기
from analysis.series import series_test from crawling.parser import parser_test if __name__ == '__main__': series_test() parser_test()
- 5단계 : 실행하기(패키지 이름만 호출)
- python roboadvisor series parse
- 기본적으로 호줄해야 하는 여러 모듈을 from과 import문으로 호출한 후, if 구문 아래에 실제 실행 코드 작성
- import analysis import crawling import database __all__= ['analysis', 'crawling', 'database']
- : 해당 디렉터리가 파이썬의 패키지라고 선언하는 초기화 스크립트
- from roboadvisor.analysis import series series.series_test()
- <aside> 💡 roboadvisor의 상위 디렉터리에서 파이썬 셸을 실행해야 정상적으로 수행
- analysis 디렉터리에 있는 series.py와 statics.py에 들어갈 코드
- _ _ init _ _.py : 각 디렉터리가 패키지임을 나타내는 예약 파일
- 하나의 패키지는 중첩된 구조로 만들 수 있으므로 패키지 안에 또 패키지가 들어갈 수 있다.
- 먼저 cmd 창에 다음 명령을 입력하여 디렉터리를 생성한다.
- 인터넷에서 주식 정보를 받아와 데이터베이스에 저장하고, 필요한 정보를 계산하는 프로그램
- 패키지 네임 스페이스
- 절대참조
- 상대 참조
- But 패키지 내에서는 상대 참조로 호출하는 것을 추천하지 않는다. 코드를 간략히 사용할 수 있다는 장점이 있지만, 패키지 전체를 보는 입장에서는 모든 패키지의 경로를 정확히 기록하는 것이 이해하기 쉽다.
- 일반적으로 패키지 내부에서 다른 패키지를 부를 때 가장 많이 사용하는 방법!
- 패키지 내에서 모듈을 서로 호출할 때 사용
가상환경 사용하기
- 가상환경의 개념패키지를 설치할 때 다른 프로젝트가 영향을 주지 않도록 독립적인 프로젝트 수행 환경 구성
- 다른 개발자가 만든 패키지를 직접 사용하는 방법
- 가상환경 설정하기
- 가상환경 만들기
my_project라는 이름의 가상환경을 python 3.4 버전으로 만들어라.# cmd 창에 입력 conda create -n my_project python=3.4 # conda -> 실행 명령어이고, create -> 가상환경을 만드는 인수, # -n my_project에서 -n : name의 줄임말, my_project : 구성할 가상환경 이름 # python=3.4 : 설치되는 파이썬의 버전
- 가상환경 실행하기
my_project라는 가상환경을 활성화하라는 뜻activate my.project
현재 실행되는 파이썬의 위치가 어디인지 출력된다.실행된 가상환경 종료where python
- 가상환경 패키지 설치하기
conda install 다음에 패키지 이름을 넣는다.conda install matplotlib
- 가상환경 패키지 실습하기
- deactivate
- 구성된 가상환경의 이름을 activate 다음에 넣으면 해당 가상환경이 실행되고, 프롬프트 앞에 (my_project)라는 가상환경 이름이 붙는다. (해당 가상환경의 인터프리터만 실행)
'스터디 > 파이썬 스터디 강의자료' 카테고리의 다른 글
[2팀/김가림, 최다예] 10주차 파이썬 스터디 - 예외처리 (1) | 2023.06.01 |
---|---|
[2팀/김세연] 10주차 파이썬 스터디 - 예외처리 (0) | 2023.05.31 |
[3팀/김규리] 9주차 파이썬 스터디 - 모듈과 패키지 (0) | 2023.05.25 |
[1팀/한규림] 9주차 파이썬 스터디 - 모듈과 패키지 (0) | 2023.05.25 |
[3팀/김경은] 9주차 파이썬 스터디 - 모듈과 패키지 (0) | 2023.05.24 |