python eggs 가 뭐지? 도대체 어디에 어떻게 사용하는 거지? 혼란스러워 지금부터 정리합니다.
지금부터 코드 파일을 관리하는 파이선의 방법을 이해하고자 합니다.
파이선은 스크립트 언어로서 컨솔에서 바로 실행해서 확인할 수 있습니다.
프로그램 단위를 모듈이라고 부르고 이 모듈을 디렉토리로 묶어서 관리하는 것을 패키지라고 부릅니다.
1. Module
코드 재사용을 위한 기본적인 단위
다른 코드에서 가져와서 사용할 수 있는 코드 블락
hello.py
def helloworld():
print 'Hello World'
위의 모듈에서 다른 모듈에서 함수를 가져오는 방법은 아래와 같습니다.
from hello import helloworld
2. Package
다른 모듈을 포함하고 있는 모듈
_init_.py 파일을 가지고 있기 때문에 다른 디렉토리와 구분이 되고 파일시스템에서 하나의 디렉토리 안에 포함되는 형태
구조는 아래의 형태입니다
hello /
__init__.py
__init__.py 파일은 파이선 패키지 디렉토리로서 디스크에 표시하기 위해 사용되어 집니다. 기본적으로 안에 내용이 없습니다.
mydir/spam/__init__.py
mydir/spam/module.py
위의 소스에서 하위 모듈 spam 을 패키지로 분리해서 아래와 같이 접근할 수 가 있습니다.
import spam.module
from spam import module
from hello import helloworld
or
import hello.helloworld
3. distutils
모듈 및 패키지를 모아서 배포해야 될 필요가 있을 것입니다. 그럴때 사용하면 됩니다.
구조는 이렇게 됩니다.
somedir /
setup.py
hello /
__init__.py
hello.py
setup.py 의 스크립트는 압축정보가 들어가도록 되어 있습니다.
from distutils.core import setup
setup( name='hello', version='1.0', package=['hello'],)
배포용 압축파일을 만드는 실행 명령문입니다.
python setup.py sdist
압축및 설치를 하는 명령문입니다.
python setup.py install
4. egg
setuptools 을 사용해서 배포할때 사용하는 배포용 압축파일 입니다.
from setuptools import setup
setup( name='hello', version='1.0', package=['hello'],)
배포용 압축파일을 만드는 실행명령문입니다.
python setup.py bdist_egg
설치하는 명령문입니다.
easy_install hello