Module

  • 함수나 변수 또는 클래스를 모아 놓은 파일
  • 모듈은 다른 파이썬 프로그램에서 불러와 사용할 수 있게 만든 파이썬 파일
def convert_to_f(celsius_value):
    return celsius_value * 90 / 5 +32


# 모듈 테스트 할때는 따로 작성해서 해줘야함
if __name__ == '__main__':
    print("모듈 테스트")
    print(convert_to_f(45))  
else:
    print("임포트문 실행")
#chap04.py
from fah_converter import convert_to_f

print(convert_to_f(34))
#chap04.py
import fah_converter as fh

print(fh.convert_to_f(34))
# fah_converter.py에서 실행 결과
모듈 테스트
842.0
# chap04.py 에서 실행 결과
임포트문 실행
644.0

예제

1. random

import random

print(random.randint(0, 100))

2. time

import time
print(time.localtime())

Package

  • 디렉토리 모듈 작성
    • 각 디렉토리가 패키지 임을 표시하기 위해 __init _ _.py 파일이 필요
    • (버전 3.3 이하 반드시 필요, 3.6 이상에서는 불필요)
  • 디렉토리 별 __ init __.py 파일 작성
    • 해당 디렉토리가 파이썬 패키지라고 선언하는 초기화 스크립트
    • 패키지 개발자, 설치 시 유의사항 등의 메타 데이터를 포함
    • 패키지의 구조를 기술

1. 예제

  • 예제) 인터넷에서 주식 정보를 가져와 데이터베이스에 저장, 필요한 정보를 계산
  • 디렉토리 구성
    • 패키지 명: roboadvisor
    • roboadvisor 기능
      • crawling: 주식 관련 데이터를 인터넷에서 가져옴
      • database: 가져온 데이터를 데이터베이스에 저장
      • analysis: 해당 정보를 분석, 의미있는 가치 추출
    • my_package
      • roboadvisor
        • analysis
        • crawling
        • database
# roboadvisior/__init__.py
from . import analysis
from . import crawling
from . import database

__all__ = ['analysis', 'crawling', 'database']
# roboadvisior/analysis/__init__.py
from . import series
from . import statics

__all__ = ['series', 'statics']
# roboadvisior/crawling/__init__.py
from . import parser
from . import scrap

__all__ = ['parser', 'scrap']
# roboadvisior/crawling/__init__.py
from . import connection
from . import query

__all__ = ['connection', 'query']

2. pycharm에서 패키지의 위치 설정하기

  • 기본적으로 패키지를 설치하면 아래에 설치됨
    • import 하면 아래 주소에서 찾음
    • C:\Users\BIT\AppData\Local\Programs\Python\Python37\Lib\site
  • 생성한 패키지를 추가 해줘야 함

    Add_package

Pycharm Import 빨간줄 오류

  • 프로젝트 우클릭 - Mark Directory as - Sources Root 클릭