모듈
- 변수, 함수, 클래스를 하나의 파일(.py)로 모아서 코드 작성
모듈 만들기
%%writefile ai_school.py
data = 'python'
def echo(msg):
print('ai school : ', msg)
모듈 사용하기
import ai_school
from ai_school import echo
from ai_school import data, echo
from ai_school import *
또한 아래와 같이 alias를 사용하여 간단히 사용 가능
import ai_school as ais
print(ais.data)
ais.echo('fighting!')
패키지
- 여러개의 모듈을 디렉토리 구분하여 코드를 작성
디렉토리 구조를 확인하기 위한 우분투 패키지인 tree 설치
!apt-get install tree -y
패키지를 만들고, 사용해보기
1. 패키지 구조 만들기
- mkdir : 디렉토리 만들기
- -p : 상위 디렉토리를 만들면서 디렉토리 만들기
- touch : 파일 생성
!mkdir -p stock/stock/kor
!mkdir -p stock/stock/usa
2. 모듈파일 추가
%%writefile stock/stock/kor/kospi.py
def crawl_kospi():
print('crawl_kospi')
%%writefile stock/stock/kor/kosdaq.py
def crawl_kosdaq():
print('crawl_kosdaq')
%%writefile stock/stock/usa/snp500.py
def crawl_snp500():
print('crawl_snp500')
%%writefile stock/stock/usa/nasdaq.py
def crawl_nasdaq():
print('crawl_nasdaq')
구조 확인하기
!tree stock
>>
stock
└── stock
├── kor
│ ├── kosdaq.py
│ └── kospi.py
└── usa
├── nasdaq.py
└── snp500.py
3 directories, 4 files
3. setup.py 파일 생성하기
%%writefile stock/setup.py
from setuptools import setup, find_packages
setup(
name = 'stock',
version ='0.0.1',
author = 'ai_school',
author_email='ai_school@likelion.net',
packages = find_packages(),
include_package_data=True
)
4. __init__.py 설정하기
- 패키지에 있는 디렉토리의 모듈을 설정하는 파일
- __init__.py python3.x 버전부터는 쓰지 않아도 문제 X
- 하위버전 호환성을 이유로 __init__.py를 써주는것이 좋음
%%writefile stock/stock/__init__.py
from .kor.kosdaq import crawl_kosdaq
from .kor.kospi import crawl_kospi
from .usa.nasdaq import crawl_nasdaq
여기까지 패키지가 만들어졌다고 할 수 있다
5. 만든 패키지 설치하기
- -e 옵션 : 개발자 모드 옵션 : 패키지 설치 후에 코드를 수정해도 수정된 코드가 적용
!pip install -e stock
6. 패키지 사용하기
import stock.kor.kospi
stock.kor.kospi.crawl_kospi()
import stock.kor.kospi as skk
skk.crawl_kospi()
from stock.kor import kospi
kospi.crawl_kospi()
'Python' 카테고리의 다른 글
[Python] 기초 문법 - 예외처리 (0) | 2023.01.06 |
---|---|
[Python] 기초 문법 - 입출력 (0) | 2023.01.06 |
[Python] 기초 문법 - 클래스(2) (0) | 2023.01.06 |
[Python] 기초 문법 - 클래스(1) (0) | 2023.01.05 |
[Python] 네이버 파파고 번역 API 사용하기 (0) | 2023.01.04 |