Study Record

[파이썬] 패키지와 모듈 본문

서버보안/리눅스 서버보안

[파이썬] 패키지와 모듈

초코초코초코 2021. 11. 29. 15:58
728x90

※ 모듈 패스

모듈을 사용하기 위해서는 모듈 패스에 지정된 위치나 현재 위치에 모듈이 존재해야 한다.

 

1. 모듈 패스 확인하기

# python3

>>> import sys

>>> sys.path

['', '/usr/lib/python35.zip', '/usr/lib/python3.5', '/usr/lib/python3.5/plat-x86_64-linux-gnu', '/usr/lib/python3.5/lib-dynload', '/usr/local/lib/python3.5/dist-packages', '/usr/lib/python3/dist-packages']

 

2. 모듈 패스 추가하기

(쉘 환경)

# export PYTHONPATH="/test/mymodules" -> PYTHONPATH 변수 활용

(코드)

import sys

sys.path.append("/test/mymodules")   # sys.path.extend('/test/mymodules')

 

 

☞ 개요

파이썬 모듈은 계층적인 디렉토리 형태로 구성한 것을 파이썬 패키지라고 한다. , 파이썬 패키지는 모듈을 계층적으로 구성하여 묶어 놓은 형태이다.

디렉토리가 파이썬 패키지로 인식이 되려면 각 디렉토리마다 __init__.py라는 이름의 파일이 반드시 존재해야 한다. __init__.py 파일의 내용은 일반적으로 "verson = 1.0"과 같이 텍스트 한줄이면 충분하다.

패키지(Packages)는 도트(.)를 이용하여 파이썬 모듈을 계층적으로 관리할 수 있게 해 준다. 예를 들어 모듈명이 A.B인 경우 A는 패키지명이 되고 BA 패키지의 B 모듈이 된다.

 

예를 들어, 다음과 같은 디렉토리가 있고 game 폴더가 PYTHONPATH 변수에 추가되어있다고 가정하면,

game 폴더안의 echo.py 파일에 있는 echo_2() 함수를 사용한다면 다음과 같이 사용하면 된다.

# 첫번째 방법
import game.test.echo
game.test.echo.echo_2()

# 두번째 방법
from game.test import echo
echo.echo_2()

# 세번째 방법
from game.test import echo.echo_2
echo_2()
728x90