머신러닝과 기술적 분석

스스로 만든 Package를 Third-Party 처럼 사용해보자 본문

python

스스로 만든 Package를 Third-Party 처럼 사용해보자

BetterToday 2017. 8. 16. 23:15
728x90

Python 프로젝트에서 여러가지 모듈을 묶어 Package 를 구성하는 방법을 정리한다.

1. 디렉토리 구조

보통 디렉토리는 아래와 같은 방식으로 구성한다.

[Project-Root]
        |----[main-package]
                   |----__init__.py             # empty file
                   |----_version.py             # Package Version 을 명시하는 File
                   |----module1.py
                   |----module2.py
                   |----[sub-package]
                            |----__init__.py    # empty file
        |----[tests]                            # (optional) package 에 대한 Test File                            
        |----setup.py                           # package 설치 파일
  • [main-package] : package 의 루트 폴더
  • _version.py : Package Version 을 명시하는 File
  • [tests] : Test File 의 루트 폴더
  • setup.py : Package 설치파일. Python Path 에 등록하여 Third Party Library 처럼 사용할 수 있게 해준다.

2. Package 만들기

2.1 module, sub-package 만들기

각 package 내부에 init.py 가 1개씩 있어야 한다. init.py 는 보통 empty 파일로 만든다.

2.2 _version.py 만들기

setup.py 에 version 을 명시하는 방법도 있지만 나는 _version.py 을 따로 만들어 두는 방법을 선호한다.

main-package 폴더 안에 _version.py 파일을 만들고 아래와 같은 방식으로 버젼을 써주자.

__version__ = "1.0"

2.3 setup.py 만들기

from distutils.core import setup

setup(name='char_recognizer',
      version=open("recognizer/_version.py").readlines()[-1].split()[-1].strip("\"'"),
      description='Pacakge-Test',
      author='penny4860',
      author_email='penny4860@gmail.com',
      url='https://penny4860.github.io/',
      packages=['main-package', 'sub-package'],  
     )

Note : packages parameter 에 모든 sub-package 들을 명시해야 한다.

2.4 설치

프로젝트 루트 폴더에서 콘솔창을 열고 아래와 같은 명령어를 실행한다.

C:\Project-Root\> python setup.py install
728x90
반응형
Comments