파이썬 패키지 배포용 패키지 만드는 순서
1. PyPI에 배포하기 위한 준비
- 회원가입 할 것(ID PW 알아두기)
- 이메일 주소로 확인 메일이 올 것이므로 접속해서 컨펌
- 내가 사용할 패키지 이름을 검색해 보고 이미 존재하는지 확인해보기
2. 패키지 이름을 정했다면, 깃허브에 같은 이름으로 repository 하나 만들자!
본인의 작업 환경을 비공개로 하고싶다면 Private
. 그렇지 않다면 Public
을 추천. 코드의 공개와는 상관이 없는 것이 PyPI
로 배포되면 어차피 다 공개될 것이므로.
- 기본적으로
repo
이름이PyPI
와 동일할 필요는 없지만, 동일하게 만드는 것이 좀더 관리되는 패키지가 될 것임 README
는 이 패키지의 사용목적, 설명, 이용 방법 등의 총괄적인 가이드라인을 제공해주는 페이지 이며,*.md
파일이므로MarkDown
이 가능하다는 이점을 충분히 살려서 가독성을 높임과 동시에 시각자료를 제공하는 것까지도 고려해 볼만 하고, 무조건 있어야 된다고 생각..gitignore
파일의 경우 깃허브의 관리를 용이하게 하는 것으로, 파이썬 패키지에 포함될 필요가 없는 파일들을 깃허브 업로드가 안되게 해주는 필터같은 존재. 관리되는 리포를 만들기 위해서 꼭 필요하다고 보고, 여러 사람들이 검토하면서 만들어진 파이썬용.gitignore
를 추가해 두자. 손해볼 것 없다.LICENSE
파일은 개인적으로 없어도 그만이라고 생각하지만 그렇다면 매우 오픈 된 형태의MIT
라이센스를 추가해두자. 처음에 깃리포 만들때 만들어두면 편함
3. 가상환경에서 작업하기
일단 파이썬 패키지를 배포할 때 가장 중요한 것은 내가 만든 코드가 작동한 환경을 다른 사람들 환경에서도 구동되게 만드는 것. 그렇다면 내 코드가 돌아가는 환경에서 내가 이용했던 다른 파이썬 패키지 정보를 제공 및 같이 설치 해줄 필요가 있다. 괜히 불필요한 라이브러리를 포함시켜서 제3자에게 설치를 강요할 필요가 없으므로, 내 배포용 패키지가 돌아가는 환경 정보를 트래킹 할 수 있는 가상환경을 하나 만들자. 파이썬에는 기본적으로 venv
가 제공이 된다.
python -m venv mypackage_env
원하는 위치에 가서 위 명령어로 새로운 가상환경을 만들어주고, 내 패키지가 돌아가는데 필요한 모든 라이브러리를 이 가상환경에 설치하면 된다. 가상환경을 활성화 시킨 후
pip freeze > requirements.txt
위와 같이 입력하면 현재 내 가상환경에 포함된 패키지들을 구체적인 버전까지 포함해서 알 수 있다. 위 파일을 나중에 깃허브에 포함시켜서 업데이트 한다면, 정확한 패키지 의존성 정보를 전달하기 때문에 내 패키지가 구동된 가상환경을 완벽히 재현 할 수 있다는 장점이 있다.
4. setup.py & twine을 이용한 패키징 및 PyPI에 업로드
먼저 내 파이썬 패키지가 준비가 되었다면 또 다른 가상환경을 만들자. 이번엔 패키징용 가상환경이다.
mypackage_packer
활성화 하면 아래 세가지 라이브러리를 설치.
pip install setuptools
pip install wheel
pip install twine
그 다음…
mypackage
폴더 안에 setup.py
, setup.cfg
파일을 만들어준다.
python setup.py bdist_wheel
setup.py
가 있는 폴더에서 위 코드를 실행하면 dist
폴더가 생성되고 그안에
ccpy-0.1-py3-none-any.whl
와 같은 *.whl
파일이 생성된다. 이게 우리가 PyPI에 업로드할 파일이다.
twine upload dist/ccpy-0.1-py3-none-any.whl
이렇게 입력해 준뒤 1번에서 만든 ID, PW를 입력해주면 끝.