본문 바로가기

Python

[Python] pypi에 패키지 업로드하기

1. PyPi란?

파이썬 개발자라면 줄창 쳐대는 pip 뭐시기 하면 받아오는 패키지 저장소이다. node의 npm 역할이라고 보면 된다.

2. 왜 올릴까

항상 프로그래밍 하면서 쓸만한 유틸리티나 함수같은걸 자주 만드는데 이걸 올려서 나중에 쓰기 편하게 하고싶어서 올린다. pip로 인스톨해서 import 하면 진짜 간편하다. 그리고 솔직히 말해서 파이썬 패키지 관리자라는게 좀 간지가 나기 때문이기도 하다.

3. 파이썬 패키지 구성하기

적기 귀찮다...
깃허브 레포지토리 던져줄 테니까 이거 보고 알아서 구성해 보세요

대략 이정도로 구성됨

/ - <패키지 이름 폴더> -> blah_blah.py
  - setup.py                  - __init__.py
  - LICENSE                  - ...
  - README

4. 어떻게 올리지?

각설하고 일단 프로젝트가 대부분 완성되었다는 가정 하에 진행하겠다.

프로젝트 최상단의 setup.py가 존재할 것이다. 
setup.py에는 내가 제작한 패키지의 이름과 버전, 그리고 라이선스 등 패키지의 정보를 이용해 tar.gz 패키지나 wheel 패키지로 묶어주는 역할을 한다.

PyPi에 업로드 하기 위해서는 tar.gz나 wheel 파일을 만들고, 그 다음 twine을 이용해 PyPi에 업로드해야 한다.

과정을 진행하기에 앞서, PyPi 계정이 없다면 여기서 계정을 만들도록 하자 

계정을 다 만들었다면 다음의 과정을 따라해 보면 누구나 손쉽게 PyPi에 자신의 패키지를 업로드 할 수 있을 것이다.


1. 프로젝트의 최상단 디렉토리에서(setup.py가 있는 곳) 다음의 명령어를 실행하자


python setup.py sdist


이 명령어는 dist 폴더 안에 tar.gz 패키지를 생성한다.


python setup.py bdist


이 명령어는 dist 폴더 안에 whl 패키지를 생성한다. 단순히 패키징 방법의 차이기 때문에 둘중 하나만 해도 상관 없다. 


2.twine을 통해  pypi에 업로드


twine은 기본 패키지에 포함되어 있지 않으므로 pip를 통해 설치해햐 한다.


pip install twine


프로젝트의 최상단(setup.py 가 존재하는 디렉토리)에서 다음의 명령을 실행하고 안내되는 과정을 모두 따르면 성공적으로 pypi에 업로드 된 자신의 패키지를 확인할 수 있을 것이다.


twine upload dist/*


twine에 대한 추가 정보는 twine 레포지토리에서 확인하도록 하자.

'Python' 카테고리의 다른 글

[파이썬] 파이썬의 타입 힌트  (0) 2018.11.15
[Python] 파이썬로 ArXiv 크롤링하기  (0) 2018.02.03