레이블이 패키징인 게시물을 표시합니다. 모든 게시물 표시
레이블이 패키징인 게시물을 표시합니다. 모든 게시물 표시

2015년 8월 24일 월요일

파이톤 패키지를 PyPI에 배포하는 방법

파이톤 패키지를 PyPI(Python Package Index)에 배포하는 방법을 소개 합니다.

참고 :
* https://docs.python.org/3.4/distutils/
* https://docs.python.org/3.4/distutils/setupscript.html
* https://docs.python.org/3.4/distutils/packageindex.html

다음과 같은 절차로 진행 합니다.
  1. PyPI에 계정을 생성
  2. setup.py 파일을 생성
  3. PyPI에 패키지를 업로드

간단한 예제를 바탕으로 설명합니다.

예제 폴더 구조
$ tree
.
├── data_rider
│   └── __init__.py
└── setup.py

테스트를 위한 패키지 코드
$ cat data_rider/__init__.py
print ('Hello {name}.'.format(name='세상'))

패키지 배포를 위한 코드
$ cat setup.py
from distutils.core import setup
setup(name='data-rider',
      version='1',
      description='Sources for riding on data.',
      author='Mark',
      author_email='juhoon.kim@me.com',
      url='http://data-rider.blogspot.kr',
      packages=['data_rider'],
     )

1. PyPI에 계정 생성

$ python setup.py register CLI 명령
또는
https://pypi.python.org/pypi 웹 페이지에서 가입 합니다.

로그인 정보는 계정 홈 디렉토리에 .pypirc 파일에 등록해서 사용하면 편합니다.
$ cat ~/.pypirc 
[server-login]
username:<username>
password:<password>

2. setup.py 파일 생성

name은 다운로드 및 관리 이름이고, 설치 후에는 packages 이름을 코드에서 사용하게 됩니다.

3. PyPI에 패키지 업로드

$ python setup.py sdist register upload 명령을 통해서 배포합니다.
sdist는 source 배포를 하겠다는 것이고, bdist를 통해서 binary 배포 가능합니다.
.pypirc에 등록하면 따로 register 명령 없이 가능합니다.

* 공유 영역에 배포됨으로 배포 이름은 유일(unique)하게 지어서 사용해야 합니다.

위 과정이 잘 끝났다면 다음과 같이 사용할 수 있습니다.
$ pip install data-rider
$ python -c "import data_rider"
Hello 세상.