[AI] Module and Project 모듈과 프로젝트

Madeline👩🏻‍💻·2022년 12월 14일
0

AI study

목록 보기
3/6

네이버 부스트코스 <인공지능 기초다지기> 강의를 참고하여 작성하였습니다.

0. 남이 만든 프로그램을 쓰는 법

  • 파이썬은 대부분의 라이브러리가 이미 다른 사용자에 의해서 구현되어 있다. 오픈소스에 기여한다거나, 회사에서 남이 만든 코드를 가져와서 쓸 때 이런 모듈이 필요하다. = 라이브러리

1) 모듈

: 어떤 대상의 부분/조각

  • 모듈은 패키지 안에 있다.
  • 프로그램을 모듈화하면 다른 사람이 내 프로그램을 쓰기 쉬워진다!
    ex) facebook for developers -> facebook api
    카카오도있더라
  • ex) 파이썬 Built-in Module인 random을 사용

2) 패키지

: 모듈을 모아놓은 단위, 하나의 프로그램

1. Module 만들기

1) 모듈이란?

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

=> pycache 파일이 생긴다.
: 파이썬을 쉽게 호출할 수 있도록 기계어로 번역해서 파이캐시 파일에 저장한다. 내 폴더를 메모리로 로딩할 때 빠르게 하기위해서 컴파일한 폴더구나~라고 생각하면 된다.

> module_ex.py
import fah_converter

print("Enter a celcius value: ")
celcius = float(input())
fahrenheit = fah_converter.convert_c_to_f(celcius)
print("That is ", fahrenheit, "degrees Fahrenheit")
> fah_converter.py
def convert_c_to_f(celcius_value):
    return celcius_value * 9.0 / 5 + 32

출력값:

Enter a celcius value:
36.5
That is 97.7 degrees Fahrenheit

2) namespace

  • 모듈을 호출할 때 범위 정하는 방법
  • 모듈 안에는 함수와 클래스 등이 존재 가능
  • 필요한 내용만 골라서 호출할 수 있음
  • from, import 키워드
  1. Alias 설정하기 : 모듈명을 별칭으로 사용

  2. 모듈에서 특정 함수 / 클래스만 호출하기

  3. 모듈에서 모든 함수 / 클래스를 호출하기

#1.
import fah_converter as fah

#2.#convert_c_to_f 함수만 호출
from fah_converter import convert_c_to_f

#3.#전체 호출
from fah_converter import *

3) Built-in Modules

  • 파이썬에 이미 있는 모듈
  1. import random
    print(random.randint(0,100)) # 0~100사이의 정수 난수 생성
    print(random.random()) # 일반적인 난수 생성

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

  3. import urllib.request
    response = urllib.request.urlopen("http://~")
    print(response.read())

  • 모듈을 아는 것보다 모듈의 키워드를 알아서 구글링하는게 좋다!

2. Package 만들기

1) 패키지란?

: 하나의 대형 프로젝트를 만드는 코드의 묶음

  • 다양한 모듈들의 합, 폴더로 연결됨
  • init, main 등 키워드 파일명이 사용된다.
  • 다양한 오픈소스들이 모두 패키지로 관리된다.

  1. 해당 그림과 똑같이 파일을 만들어준다.

  1. 각 폴더별로 필요한 모듈을 구현해보자.
#echo.py
def echo_play(echo_number):
    print("echo {} number start".format(echo_number))
  1. 폴더별로 init.py 구성하기
  • 현재 폴더가 패키지임을 알리는 초기화 스크립트
  • 없을 경우 패키지로 간주하지 않음(python 3.3~부터는 없어도됨)
  • 하위 폴더와 py파일(모듈)을 모두 포함함
  • import, all 키워드 사용
#image/__init__.py
__all__ = ["character","object"]

from . import character
from . import object

#stage/__init__.py
__all__ = ["main","sub"]

from . import main
from . import sub

#sound/__init__.py
__all__ = ["bgm","echo"]

from . import bgm
from . import echo

#__init__.py #상위폴더에있는 파일
__all__ = ["image","sound","stage"]

from . import image
from . import sound
from . import stage

요렇게 하위 폴더에 있는 파일들을 모두 import 해준다.

  • object.py => object_type.py로 Rename

  • game 폴더안에 main.py 만들어줌

#__main__.py
from sound import echo

if __name__ == '__main__':
    print("Game Start")
    print(echo.echo_play(3))

=> 프로젝트 내에

  • init.py
  • 각 폴더들
    => 각 폴더들 내에
    init.py가 존재한다.
    => 문서화해서 올린다.

🎈 참고>
package namespace: Package 내에서 다른 폴더의 모듈을 부를 때, 상대 참조로 호출하는 방법
#1. 절대 참조
from game.graphic.render import render_test()
#2. . :(점 하나) 현재 디렉토리 기준
from .render import render_test()
#3. .. :(점 둘) 부모 디렉토리 기준
from ..sound.echo import echo_test()

3. 오픈소스 라이브러리 사용하기

  • 진짜 프로젝트를 한다. 내 PC 에 패키지를 설치한다.

1) Python Virtual Environment Overview

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

virtualenv

  • virtualenv + pip
  • 가장 대표적인 가상환경 관리 도구
  • 레퍼런스 + 패키지 개수

conda

  • anaconda 상용 가상환경도구
  • miniconda 기본도구
  • 설치의 용이성
  • Windows에서 장점

파이썬은 C로 되어있다. 현재는 conda를 더 많이 사용한다.

2) conda 가상환경

  • 명령 프롬프트에
conda create -n my_project python=3.8

//conda create: 가상환경 새로 만들기
//-n my_project : 가상환경 이름
//python=3.8: 파이썬 버전

conda activate / deactivate가 뜬다!
가상환경 conda를 활성화시키기위해

conda activate my_project

입력하면

가상환경 안으로 들어온다

  • conda deactivate 로 다시 나갈 수 있음

3) 패키지 설치

1. matplotlib

C:\Users\user>conda install matplotlib
Collecting package metadata (current_repodata.json): done
Solving environment: done

conda install <패키지명>

  • matplotlib는 대표적인 파이썬 그래프 관리 패키지!

2. tqdm

conda install tqdm
Collecting package metadata (current_repodata.json): done
Solving environment: done
  • for loop 같이 loop이 얼마나 남았는지 시간 계산해주는 도구

4) 가상환경 설치

conda install jupyter

작업하고 있는 파일로 들어간 후에 설치했다.

  1. 아나콘다로 파이썬을 사용하는 경우
    conda install matplotlib
  2. 파이썬만 사용하는 경우
    pip install matplotlib
  3. 주피터 노트북 셀에 입력하는 경우 (or 코랩에서 설치하는 경우)
    !pip install matplotlib

출처:
https://terriyou.tistory.com/15

비주얼코드로 matplotlib가 작동하지 않아서 cmd에서 파이썬 파일을 실행하니, 실행되었다.

tqdm 도 실습해보자~!~

#tqdm_ex.py
from tqdm import tqdm
import time
for i in tqdm(range(10000)):
    if i % 1000 == 0:
        time.sleep(1)

profile
Major interest in iOS 🍀 & 🍎

0개의 댓글