일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 리스트
- 자료구조
- 파이썬
- numpy
- MacOS
- 기계학습
- Slicing
- SQL
- python
- Machine Learning
- plt
- INSERT
- 통계학
- 등비수열
- pandas 메소드
- pandas filter
- barh
- 스터디노트
- Folium
- DataFrame
- 머신러닝
- matplotlib
- 등차수열
- 문제풀이
- tree.fit
- pandas
- 순열
- 재귀함수
- maplotlib
- 조합
Archives
- Today
- Total
코딩하는 타코야끼
[Python] 7강_패키지 모듈 import 본문
728x90
반응형
1. 모듈(Module)
📍 개요
- 독립적인 기능을 가지고 재사용가능한 프로그램 단위를 모듈이라고 한다.
- 파이썬에서 모듈은 재사용 가능한 함수, 클래스등을 작성한 소스 파일을 말한다.
- 함수나 클래스를 작성한 .py 스크립트 파일 파일이 모듈이 된다.
- 모듈의 함수나 클래스들을 다른 python 프로그램에서 호출 하여 사용할 수 있다.
- 단 사용하기 위해서는 import 를 먼저 해야 한다.
- 이런 모듈들을 모아 놓으면 라이브러리가 된다.
📍 모듈의 종류
- 표준 모듈
- 파이썬에 내장된 모듈
- 사용자 정의 모듈
- 개발자가 재사용을 위해 직접 만든 모듈
- 3rd Party 모듈
- 특정 개발업체나 개발자들이 만들어 배포하는 모듈
- 사용자 정의 모듈도 배포되어 다른 곳에서 사용되면 3rd party 모듈이 된다.
import my_module
2. 패키지 (Package)
📍 개요
- 모듈들을 모아 놓은 것을 패키지라고 한다.
- 그래서 파이썬에서는 라이브러리를 패키지라고 한다. (재사용가능한 모듈들을 모아 놓은 것이 패키지이므로)
- 물리적으로는 모듈 파일들을 모아놓은 디렉토리(폴더)가 패키지이다.
- python 3.3 이전 버전은 package 디렉토리에 __init.py__ 파일을 그 디렉토리에 반드시 위치시켜야 한다.
- 3.3 이후에는 위치시킬 필요는 없지만 package안의 모듈들의 import 관련 설정을 해야 하는 경우에는 __init__.py에 작성하고 위치시킨다.
📍 Root Package
- 전체 모듈들을 담고 있는 최상위 패키지(디렉토리)
- 패키지 내의 속한 패키지를 통칭 sub package 라고 한다.
- Root package를 제외한 모든 package들은 다 sub package가 된다.
3. import
📍 함수, 클래스 정의란
- 함수, 클래스를 구현한다.
- 구현된 함수를 파이썬 실행환경에 등록한다.
- 등록하는 것은 메모리에 올리는(loading) 작업이다.
- 메모리에 올리기 위해서는 실행시켜서 파이썬 실행환경이 읽도록 해야 한다.
- 파이썬 실행환경에 등록된 함수와 클래스만 호출해서 사용할 수 있다.
📍 import 란
- 파이썬 모듈 파일에 정의된 변수, 함수, 클래스들을 사용하기 위해 파이썬 실행환경에 등록하는 작업을 말한다.
- 현재 프로그램 모듈의 것들이 아니라 다른 모듈에 있는 것들은 사용하기 위해 import 작업을 먼저 해야 한다.
- 모듈을 import 하면 모듈의 내용이 실행되면서 그 안에 구현된 변수, 함수, 클래스들이 파이썬 실행환경에 그 모듈 이름을 namespace로 하여 등록된다.
📍 import 구문
🌓 기본구문
- [from 사용할 것의 경로] import 사용할 것 [as 별칭] [, 사용할 것..]
- [ ] : 생략 가능한 구문
- 사용할 것
- 모듈
- 모듈안에 정의된 변수, 함수, 클래스
from my_package import calculator as calc
🌓 모듈 import
- 모듈을 import 하고 그 안에 함수, 클래스들을 사용할 때는 모듈명이 namespace 역할을 하기 때문에 모듈명.함수( ), 모듈명.Class 구문으로 호출한다.
- 별칭(Alias)를 주면 namespace로 별칭을 사용한다.
- 예)
🌓 모듈내의 특정 항목만 import
- 모듈에 정의된 일부 함수나 클래스만 사용할 경우 개별적으로 import 할 수있다.
- from 모듈 import 함수 구문으로 import 하면 import한 함수나 클래스들이 현재 실행중인 모듈의 namespace로 들어간다. 그래서 모듈명없이 바로 호출 할 수 있다.
- " * "를 이용하면 그 모듈의 모든 함수/클래스들을 현재 실행중인 namespace에 추가해 사용할 수 있게 해준다. 이 방식은 이름 충돌의 가능성이 있기때문에 추천되지 않는다.
from my_module import greeting, Person
🌓 패키지에 속한 모듈 import
- 패키지에 속한 모듈을 import 할 때는 from 절에 패키지를 import 절에 모듈을 설정한다.
- import 가능한 것은 변수, 모듈, 함수, 클래스 들이다. 패키지는 import 할수 없다.
# 되도록 이방식은 안쓰는 것이 좋다.
# 모듈의 모든 클래스/함수를 import
from my_package.calculator import *
📍 import 된 모듈 찾는 경로 및 PYTHONPATH
🌓 import 모듈 구문을 사용하면 파이썬 실행 환경은 모듈을 다음 경로에서 찾는다.
- 현재 실행중인 모듈(import 구문을 사용한 모듈)이 있는 경로
- 파이썬 실행환경에 등록된 경로
🌓 모듈을 찾는 순서는 다음에서 확인할 수 있다.
🌓 위의 경로 이외에 파이썬 모듈이 있을 경우 PythonPath 환경변수에 그 디렉토리 경로를 등록한다.
- sys.path 에 추가한다. (사용할 때 마다 추가해야 한다.)
- 운영체제 환경변수에 등록한다. (한번만 하면된다.)
🌓 Window
sys.path.append(r"c\\Temp") # 할때마다 추가해야함 (윈도우기준)
import test_module # 추가한 후 추출
import sys
from pprint import pprint # 자료구조를 가독성 좋게(읽기 좋게) 출력.
pprint(sys.path)
🌓 Mac OS
import sys # 표준 모듈 sys
sys.path # 경로 확인
sys.path.append('/Users/Desktop/mose/python_basic') # 경로 추가
sys.path # 경로 추가 확인
4. 메인 모듈(Main Module)과 하위 모듈(Sub Module)
- 메인 모듈
- 현재 실행하고 있는 모듈
- 하위 모듈 (Sub module)
- 메인 모듈에서 import 되어 실행되는 모듈
- 모듈을 import하면 그 모듈을 실행 시킨다. 이때 모듈에 있는 실행코드들도 같이 실행된다. 이것을 방지 하기 위해 모듈이 메인 모듈로 실행되는지 하위 모듈로 실행되는지 확인이 필요하다.
- __name__ 내장 전역변수
- 실행 중인 모듈명을 저장하는 내장 전역변수
- 메인 모듈은 'main' 을 하위 모듈은 모듈명(파일명) 이 저장된다.
- 모듈이 메인 모듈로 시작하는지 여부 확인 할 때 사용한다.
반응형
'[T.I.L] : Today I Learned > Python' 카테고리의 다른 글
[Python] 9-1강_Path (0) | 2023.04.09 |
---|---|
[Python] 8강_예외처리 (0) | 2023.04.09 |
[Python] 6강_객체지향 프로그 (0) | 2023.04.05 |
[Python] 5강_함수 (0) | 2023.04.04 |
[Python] 4강_제어문, 컴프리헨션 (0) | 2023.04.04 |