- "패키지" : 모듈의 집합
- import 모듈명
- import 패키지명
- from 패키지명 import 모듈명
- from 패키지명.모듈명 import 클래스명
- "import 클래스명" 또는 "import 함수명"는 사용할 수 없음
- "from 패키지명 import *"를 사용할 때는 __all__ = ["모듈명1", "모듈명2", ...]로,
패키지 안에서 import 되기를 원하는 것만 명시해, 공개 범위를 설정해줘야 함
"""
패키지 : travel
↳ 모듈 : france.py
↳ 클래스 : FrancePackage
germany.py
↳ 클래스 : GermanyPackage
__init__.py
"""
#france.py
class FrancePackage:
def detail(self):
print("[프랑스 패키지 6박 7일] 파리 효도 여행 200만원")
#germany.py
class GermanyPackage:
def detail(self):
print("[독일 패키지 6박 7일] 베를린 여행 180만원")
#__init__.py
__all__ = ["france", "germany"]
#case1_모듈 import
import travel.paris
trip_to = travel.paris.ParisPackage()
trip_to.detail()
#case2_해당 모듈의 클래스 import
from travel.paris import ParisPackage
trip_to = ParisPackage()
trip_to.detail()
#case3_해당 패키지의 모듈 import
from travel import germany
trip_to = germany.GermanyPackage()
trip_to.detail()
#case4_해당 패키지의 모든 것 import
from travel import * # __all__을 사용해 공개 범위 설정 필요
trip_to = germany.GermanyPackage()
trip_to.detail()
- 모듈을 직접 실행했는지, 모듈 외부에서 모듈을 호출했는지 조건문으로 확인할 수 있음
class FrancePackage:
def detail(self):
print("[프랑스 패키지 6박 7일] 파리 효도 여행 200만원")
if __name__ == "__main__":
print("france 모듈을 직접 실행")
print("이 문장은 모듈을 직접 실행할 때만 실행")
trip_to = FrancePackage()
trip_to.detail()
else:
print("france 외부에서 모듈 호출")
- 패키지, 모듈의 위치를 반환할 수 있음
- inspect.getfile(모듈명)
#case1
import inspect
import random
print(inspect.getfile(random))
#case2
import inspect
from travel import france
print(inspect.getfile(france))
- 터미널에 pip install 패키지명을 입력하면, 패키지를 설치할 수 있음
- pip install 패키지명
- 터미널에 pip list를 입력하면, 현재 설치되어 있는 패키지를 볼 수 있음
- pip list
- 터미널에 pip show 패키지명을 입력하면 패키지 정보를 볼 수 있음
- pip show 패키지명
- 터미널에 pip install --upgrade 패키지명을 입력하면 패키지를 업그레이드 할 수 있음
- pip install --upgrade 패키지명
- 터미널에 pip uninstall 패키지를 입력하면 패키지를 설치 제거하거나 삭제할 수 있음
- pip uninstall 패키지명
-출처-