새소식

부스트캠프 AI Tech 4기

4. Module and Project/가상환경

  • -

Module

프로그램에서는 작은 프로그램 조각들, 모듈들을 모아서 하나의 큰 프로그램을 개발한다.

 

파이썬의 Module은 .py 파일을 의미한다.

import문을 사용해서 모듈을 호출할 수 있다.

 

__pycache__ 폴더 : 코드를 쉽게 로딩할 수 있도록 기계어로 번역한 것이 pycache 폴더에 들어가 있음

 

+namespace

모듈 안에는 함수클래스가 존재하고 필요한 내용만 골라서 호출할 수 있다.

  • Alias 설정으로 호출
    이 방식이 해당 함수나 클래스가 어디서 왔는지 알 수 있어서 좋음
import img_preprocessor as p

print(p.url_to_img(url))
  • 모듈에서 특정 함수/클래스만 호출
import img_preprocessor import url_to_img

print(url_to_img(url))

app.py에서 model.py의 클래스 ShapeClassifier를 호출

  • 모듈에서 모든 함수 또는 클래스 호출
from img_preprocessor import *

print(url_to_img(url))

 

Package

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

다양한 모듈들의 합으로, 폴더로 연결된다.

 

폴더별로 __init__.py를 구성한다. (이전에는 없을 경우 패키지로 간주하지 않았으나 3.3버전부터는 없어도 상관은 없다.)

  • 가장 상위 폴더인 game의 __init__.py의 __all__에는 모듈들의 이름을 적어준다.

  • sound 폴더의 __init__.py

 

최상단 폴더에 __main__.py 파일을 생성한다.

 

이렇게 __main__.py 파일을 생성해두면 총 패키지 이름인 game을 python game이라고만 입력해도 echo_play의 return값이 출력된다.

$ python game
Hello

 

+ package namespace

package 내에서 다른 폴더의 모듈을 호출하는 방법

  • 절대참조
from game.graphic.render import render_test()
  • 현재 디렉토리 기준
from .render import render_test()
  • 부모 디렉토리 기준
from ..sound.echo import echo_play()

 


가상환경

프로젝트 실행 시 필요한 패키지만 설치하는 환경

가상환경 정리 글

 

conda

  • 상용 가상환경도구
  • 설치의 용이성
  • Windows에서 장점
    Python의 경우 C로 이루어져 있는데 pip는 c로 complie이 안되어 있는 경우가 많다.
    그래서 compile 된 코드가 함께 있는 conda가 Windows와 굉장히 잘 맞는다.

 

가상환경 생성

(base) C:\Users\User\Desktop\BoostCamp\Week1\Day4> conda create -n my_proj python=3.9

가상환경 활성화

(base) C:\Users\User\Desktop\BoostCamp\Week1\Day4> conda activate my_proj

(my_proj) C:\Users\User\Desktop\BoostCamp\Week1\Day4>

패키지 설치

(my_proj) C:\Users\User\Desktop\BoostCamp\Week1\Day4> conda install <패키지명>

 

 


부스트캠프 AI Tech 교육 자료를 참고하였습니다.

728x90

'부스트캠프 AI Tech 4기' 카테고리의 다른 글

5. Python data handling  (0) 2022.09.23
5. Numpy  (0) 2022.09.23
3. 객체지향 프로그래밍  (0) 2022.09.19
2. Data Structure/Pythonic Code  (0) 2022.09.18
1. Variables/String & Advanced function concept  (0) 2022.09.16
Contents