[Python] PIP 모듈 배포하기
파이썬용 모듈을 배포하고 사용하는 방법에 대해 다뤄본다.
먼저 하기 전에 알아둘건, PIP는 cargo나 npm처럼 똑똑하지 않다는 것이다.
연식이 좀 있다보니 상당히 원시적인 구조를 갖고 있다.
개선할 의지도 딱히 없는거같다.
PyPI 가입하기
PIP는 PyPI라는 사이트를 통해 모듈을 배포하고 내려받는다.
https://pypi.org/
계정이 없다면 먼저 만들어야 한다.
여기서 가장 짜증났던건.
github으로 로그인을 할 수가 없다는 것이다.
이거 오픈소스 플랫폼 맞나?
보조모듈 설치
이놈의 환경은 pip에 뭔가 내장되어있는게 아니라, 추가로 소스코드에서 배포처리를 해줘야 한다.
게다가 모듈도 깔아줘야 한다.
pip install setuptools wheel

소스코드 작성
우선 프로젝트 루트 경로에 setup.py라는 배포 설정파일을 추가해주자.
말 그대로 배포에 대한 설정값들을 넣어줄 것이다.
이런식으로 써주면 된다.
import setuptools
setuptools.setup(
name="myyrakle_test_module",
version="0.4.0",
license='MIT',
author="myyrakle",
author_email="sssang97@naver.com",
description="test module",
long_description=open('README.md').read(),
long_description_content_type='text/markdown',
url="https://github.com/myyrakle/python_module_template",
packages=setuptools.find_packages(),
classifiers=[
# 패키지에 대한 태그
"Programming Language :: Python :: 3",
"License :: OSI Approved :: MIT License",
"Operating System :: OS Independent"
],
)
여기서 name="myyrakle_test_module"이 pip install할때 쓰일 이름이 된다.
version은 고유해야하며, 있던걸 올리면 에러가 난다.
그다음에는 모듈 디렉터리를 작성하고, 내부에 init.py와 여기서 가져올 소스코드들을 작성하면 된다.
이런식으로
실제로 import할때 쓰이는 이름은 여기서 작성한 "test_module"이 된다.
setup.py는 루트 경로에 있는 모든 디렉터리를 모듈로 간주해서 올려버린다.
배포하기
방금 작성한 setup.py를 다음과 같이 실행하면 된다.
python setup.py bdist_wheel
이렇게

그럼 이렇게 dist 경로에 배포용 파일을 감싸서 올려줄 것이다.
저걸 다시 업로드시키면 된다.
전용 도구 twine을 설치하고
pip install twine

그걸로 이렇게 올리면 된다.
twine upload 파일명

그럼 pip에도 이렇게 뜰 것이다.


사용하기
이제 올린 저것을 설치해서 사용해보자.
install로 설치하고

import해서 사용하면 된다.

두둔

테스트에 사용한 템플릿소스다.
필요하다면 참고하면 되겠다.
https://github.com/myyrakle/python_module_template