«   2018/05   »
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31    
Tags
more
Archives
Today
0
Total
1,148
관리 메뉴

피아노 치는 개발자

[python] 라이브러리 만들어서 pypi에 배포하기 본문

개발/일반

[python] 라이브러리 만들어서 pypi에 배포하기

Claude.Seo 2017.01.02 18:19

python flask로 프로젝트를 시작할 때 초기 셋팅이 굉장히 귀찮아서 flask-app-generator 라이브러리를 하나 만들었다.

라이브러리 프로젝트를 다운로드 받아서 python setup.py install 을 하면 설치가 가능하지만, pip 로 쉽게 설치할 수 있게 하고 싶어서 찾아보니 pypi에 업로드하면 가능하다고 해서 바로 시도( 삽질, 무한 노가다 ) 했다.



pypi 계정 생성

먼저 pypi ( https://pypi.python.org/pypi ) 에 가입해야한다.

pypi에 배포 배포하지 않고, 테스트 업로드를 해볼 수 있는 testpypi ( https://testpypi.python.org/pypi ) 도 같이 가입해둔다.



.pypirc 파일 생성

이 파일은 pypi 인증 정보를 가지고 있다.

$ vim ~/.pypire

[distutils]
index-servers =
    pypi
    pypitest

[pypi]
repository=https://pypi.python.org/pypi
username=<USER_ID>
password=<USER_PASSWORD>

[pypitest]
repository=https://testpypi.python.org/pypi
username=<USER_ID>
password=<USER_PASSWORD>



프로젝트 준비

working-project/

setup.py

MANIFEST.in

LICENSE

README.md

src/

__init__.py

echo.py


setup.py 준비

# -*- coding: utf-8 -*-
try:
    from setuptools import setup, find_packages
except ImportError:
    from distutils.core import setup, find_packages


setup(
    name='my_package',
    version='0.1.0',
    packages=find_packages(exclude=['*.pyc']),
    author='ClaudeSeo',
    author_email='ehdaudtj@gmail.com',
    url='https://github.com/SeoDongMyeong/my_package',
    description='My Package',
    keywords=['python', 'packaging'],
    license='MIT License'


LICENSE

다양한 라이센스가 존재하지만, 나는 MIT LICENSE 를 사용하고 있다. 사용하려고 하는 라이센스 파일을 업로드하면 된다.


MANIFEST.in

include requirements.txt
recursive-include src *


src/echo.py

# -*- coding: utf-8 -*-


def echo(msg):
    print msg



pypi test에 라이브러리 업로드하기

$ python setup.py register -r pypitest

정상적으로 프로젝트가 등록이 되나 pypi 테스트 서버에 패키지를 등록한다.


 $python setup.py sdist upload -r pypitest

프로젝트를 빌드하고 pypi 테스트 서버에 업로드 한다.


업로드를 성공하면 https://pypi.python.org/pypi 에서 확인할 수 있다.



pypi에 업로드 하기

$ python setup.py register -r pypi

pypi 라이브 서버에 패키지를 등록한다.


 $python setup.py sdist upload -r pypi

프로젝트를 빌드하고 pypi 라이브 서버에 업로드 한다.



업로드 테스트

$ pip install my_packages

업로드한 패키지가 정상적으로 등록됬나 설치해본다.



flask_app_generator 구경가기

0 Comments
댓글쓰기 폼