Module and Project

Module and Project


모듈

  • 파이썬의 Module == py 파일을 의미
  • 같은 폴더에 Module에 해당하는 .py파일과 사용하는.py을 저장한 후 import문을 사용해서 module을 호출

모듈 만들기

In [1]:
!type fah_converter.py
def covert_c_to_f(celsius_value):
    return celsius_value * 9.0 / 5 + 32

B = 155
  • 모듈로 사용할 .py파일을 만든다.
In [2]:
import fah_converter
fah_converter.covert_c_to_f(36.5)
Out[2]:
97.7
In [3]:
import fah_converter

print ("Enter a celsius value: "),
celsius = float(input())
fahrenheit = fah_converter.covert_c_to_f(celsius) # my_module의 c_to_f 호출
print ("That's ", fahrenheit, " degrees Fahrenheit")
Enter a celsius value: 
36.5
That's  97.7  degrees Fahrenheit
  • 여기서 import를 하게 되면 해당 폴더에 __pycache__라는 폴더가 생긴다.
  • 여기에 .pyc파일은 컴파일된 파일로 코드를 쉽게 로딩할 수 있도록 만든 파일이다.

namespace

  • 모듈을 호출할 때 범위 정하는 방법
  • 모듈 안에는 함수와 클래스 등이 존재 가능
  • 필요한 내용만 골라서 호출 할 수 있음
  • fromimport키워드를 사용함

Alias 설정하기 - 모듈명을 별칭으로 써서

image.png

모듈에서 특정 함수 또는 클래스만 호출하기

image.png

모듈에서 모든 함수 또는 클래스를 호출하기

image.png


Built-in Modules

  • 파이썬이 기본 제공하는 라이브러리
  • 문자처리, 웹, 수학 등 다양한 모듈이 제공됨
  • 별다른 조치없이 import 문으로 활용 가능
In [4]:
#난수
import random
print(random.randint (0,100)) # 0~100사이의 정수 난수를 생성
print(random.random())  # 일반적인 난수 생성

#시간
import time
print(time.localtime()) # 현재 시간 출력

#웹
import urllib.request
response = urllib.request.urlopen("https://n-brogrammer.tistory.com/")
print(response.readline())   # 한 줄 읽기
94
0.6402897362865574
time.struct_time(tm_year=2021, tm_mon=1, tm_mday=21, tm_hour=21, tm_min=29, tm_sec=30, tm_wday=3, tm_yday=21, tm_isdst=0)
b'<!DOCTYPE html>\n'


패키지

  • 하나의 대형 프로젝트를 만드는 코드의 묶음
  • 다양한 모듈들의 합, 폴더로 연결됨
  • __init__ , __main__ 등 키워드 파일명이 사용됨
  • 다양한 오픈 소스들이 모두 패키지로 관리됨

1) 기능들을 세부적으로 나눠 폴더로 만듦

image.png

2) 각 폴더별로 필요한 모듈을 구현함

image.png

image.png

3) 1차 Test-python shell

image.png

4) 폴더별로 __init__.py구성하기

  • 현재 폴더가 패키지임을 알리는 초기화 스크립트
  • 없을 경우 패키지로 간주하지 않음(3.3+ 부터는 없어도 상관없다)
  • 하위 폴더와 py파일(모듈)을 모두 포함함
  • import와 __all__ keyword 사용

image.png

  • __init__.py에 현재 자신이 쓸 폴더나 파일명을 다 써준다.
  • __all__에 적힌 모든 파일 import해준다.

5) __main__.py 파일 만들기

image.png

image.png

Package내에서 다른 폴더의 모듈을 부를때
상대 참조로 호출하는 방법

image.png

6)실행하기 - 패키지 이름만으로 호출하기

  • python (패키지명)으로 실행할 수 있다.


가상환경 설정하기(Virtual Environment)

  • 프로젝트 진행 시 필요한 패키지만 설치하는 환경
  • 기본 인터프리터 + 프로젝트 종류별 패키지 설치
    ex) 웹 프로젝트, 데이터 분석 프로젝트 각각 패키지 관리할 수 있는 기능
  • 다양한 패키지 관리 도구를 사용함

image.png

conda 가상환경

image.png

image.png

image.png

패키지 설치

image.png

'AI > 이론' 카테고리의 다른 글

Numpy part II  (0) 2021.01.25
Numpy part I  (0) 2021.01.25
Python data handling  (0) 2021.01.22
File & Exception & Log Handling  (0) 2021.01.22
Python Object Oriented Programming  (0) 2021.01.21
pythonic code  (0) 2021.01.20
python data structure  (0) 2021.01.20
Variable & List  (0) 2021.01.19

+ Recent posts