(Python) 파이썬 모듈 만들기 (Kr)
Thrid Party 모듈을 공급하고 지원하는 기능은 파이썬 코드 재사용의 핵심 기술입니다.
그래서 파이썬은 개발자가 파이썬 설정에 모듈을 추가할 수 있도록 내장 기능을 제공합니다.
파이썬 표준 라이브러리에 포함된 커다란 모듈 컬렉션은 파이썬 핵심 개발자가 관리하며 많은 사람이 사용하고 원본이 훼손되지 않도록 유지됩니다.
그러므로 개발자가 표준라이브러리에 모듈을 추가하거나 제거하는 작업은 하지 말아야합니다.
그러나 모듈을 사이트패키지에 추가하거나 제거하는 작업은 가능합니다.
파이썬에서는 이와같은 작업을 위해 setup 모듈을 제공합니다.
* setup.py이란 무엇인가??(What is setup.py?)
->setup.py is a python file which is usually tells you that module/package you are beneficial about to install has been packaged and distributed with Disutils, which is statndard for Python Modules.
This allows you to easily to install Python packages.
$ python setup.py install
그래서 파이썬은 개발자가 파이썬 설정에 모듈을 추가할 수 있도록 내장 기능을 제공합니다.
파이썬 표준 라이브러리에 포함된 커다란 모듈 컬렉션은 파이썬 핵심 개발자가 관리하며 많은 사람이 사용하고 원본이 훼손되지 않도록 유지됩니다.
그러므로 개발자가 표준라이브러리에 모듈을 추가하거나 제거하는 작업은 하지 말아야합니다.
그러나 모듈을 사이트패키지에 추가하거나 제거하는 작업은 가능합니다.
파이썬에서는 이와같은 작업을 위해 setup 모듈을 제공합니다.
* setup.py이란 무엇인가??(What is setup.py?)
->setup.py is a python file which is usually tells you that module/package you are beneficial about to install has been packaged and distributed with Disutils, which is statndard for Python Modules.
This allows you to easily to install Python packages.
$ python setup.py install
즉, setup.py를 이용해 특정 모듈을 설치하거나, 모듈이나 패키지가 어디에 분포하고있는지 알려주는 표준라이브러리에 있는 파일이다.
<setup.py를 이용하는법>
먼저 핵심 단어를 정의할 필요가 있다.
package : 폴더/디렉토리가 __init__.py파일을 포함하고 있는것
module : .py확장자를 가지고 있는 파일
Distribution : 하나의 패키지가 다른 파일들과 어떠한 관계를 갖고 있는가
예를들어, galaxy라는 패키지를 설치한다고 예를들어보자.
$ git clone https://github.com/galaxy
$ cd galaxy
$ python setup.py install
설치를 하는 것이 아니라 그저 이것을 사용하고 싶다면 다음과 같은 명령어를 이용한다
$python setup.py develop
<setup.py 만드는 법>
패키지가 다음과 같이 구성되어 있다.
galaxy
|
|
|-------galaxy
| |--------data_struct.py
| |---------__init__.py
| |---------internals.py
|
|------------README
|------------requirements.txt
|------------setup.py
그후 setup.py를 다음과 같이 작성하여 해당 모듈을 설치 할 수 있다.
from setuptools import setup
setup(
name='galaxy',
version='1.0',
description=' good module',
author='Yo Man',
author_email='ssss@gmail.com',
packages=['galaxy'], # same as name
install_requires=['A', 'B'] # external package
)
댓글
댓글 쓰기