Module and Project¶
모듈¶
- 파이썬의 Module == py 파일을 의미
- 같은 폴더에 Module에 해당하는 .py파일과 사용하는.py을 저장한 후 import문을 사용해서 module을 호출
모듈 만들기¶
In [1]:
!type fah_converter.py
- 모듈로 사용할
.py
파일을 만든다.
In [2]:
import fah_converter
fah_converter.covert_c_to_f(36.5)
Out[2]:
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")
- 여기서
import
를 하게 되면 해당 폴더에__pycache__
라는 폴더가 생긴다. - 여기에
.pyc
파일은 컴파일된 파일로 코드를 쉽게 로딩할 수 있도록 만든 파일이다.
namespace¶
- 모듈을 호출할 때 범위 정하는 방법
- 모듈 안에는 함수와 클래스 등이 존재 가능
- 필요한 내용만 골라서 호출 할 수 있음
from
과import
키워드를 사용함
Alias 설정하기 - 모듈명을 별칭으로 써서¶
모듈에서 특정 함수 또는 클래스만 호출하기¶
모듈에서 모든 함수 또는 클래스를 호출하기¶
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()) # 한 줄 읽기
패키지¶
- 하나의 대형 프로젝트를 만드는 코드의 묶음
- 다양한 모듈들의 합, 폴더로 연결됨
__init__
,__main__
등 키워드 파일명이 사용됨- 다양한 오픈 소스들이 모두 패키지로 관리됨
1) 기능들을 세부적으로 나눠 폴더로 만듦¶
2) 각 폴더별로 필요한 모듈을 구현함¶
3) 1차 Test-python shell¶
4) 폴더별로 __init__.py구성하기¶
- 현재 폴더가 패키지임을 알리는 초기화 스크립트
- 없을 경우 패키지로 간주하지 않음(3.3+ 부터는 없어도 상관없다)
- 하위 폴더와 py파일(모듈)을 모두 포함함
- import와 __all__ keyword 사용
- 각 __init__.py에 현재 자신이 쓸 폴더나 파일명을 다 써준다.
- __all__에 적힌 모든 파일
import
해준다.
5) __main__.py 파일 만들기¶
Package내에서 다른 폴더의 모듈을 부를때
상대 참조로 호출하는 방법
6)실행하기 - 패키지 이름만으로 호출하기¶
python (패키지명)
으로 실행할 수 있다.
가상환경 설정하기(Virtual Environment)¶
- 프로젝트 진행 시 필요한 패키지만 설치하는 환경
- 기본 인터프리터 + 프로젝트 종류별 패키지 설치
ex) 웹 프로젝트, 데이터 분석 프로젝트 각각 패키지 관리할 수 있는 기능 - 다양한 패키지 관리 도구를 사용함
conda 가상환경¶
패키지 설치¶
'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 |