[Python] Python Setup Package

Package Directory 구조 만들기 #

  • package로 만들기 위해 Directory 구조를 만든다.
  • 프로젝트는 기본적으로 아래와 같은 형태로 구성한다.
1project/
2├── package/
3│   ├── __init__.py
4│   └── module.py
5├── README.md
6└── setup.py
NameDescription
project프로젝트 root Directory
package프로젝트의 핵심 Directory. 일반적으로 Package의 이름과 동일하게 지정한다.
init.pyPackage를 모듈로 인식하게 만드는 파일. Package가 import될 때 실행된다.
module.pyPackage에서 제공하는 기능들이 정의된 Python 모듈 파일. 여러 개의 모듈로 구성할 수도 있으며, 기능별로 파일을 나눌 수 있다.
README.md프로젝트의 설명 파일
setup.pyPIP 배포를 위한 설정 파일

Package 배포를 위한 의존성 설치 #

  • 손수 만든 Python 프로젝트를 배포하기 위한 몇가지 의존성 Package가 존재한다.
  • 이후 손쉽게 배포하기 위해, 먼저 의존성을 설치해 준다.
1pip install setuptools
2pip install wheel
3pip install twine

Package 설치를 위한 설정 파일 작성 #

  • Package를 설치 가능하게 만들기 위해 setup.py 파일을 작성한다.
 1from setuptools import setup
 2
 3# README.md 파일을 불러오는 기능
 4with open('README.md', encoding='utf-8') as f:
 5  long_description = f.read()
 6
 7setup(
 8  name='project', # 등록할 Package 이름 (PyPI에 등록되는 이름)
 9  version='0.0.1', # Package 버전
10  description='This is my Python Package.', # Package의 짧은 설명
11  long_description=long_description, # Package의 상세 설명
12  long_description_content_type = 'text/markdown', # long_description의 형식
13  author='author name', # Package 작성자 이름
14  author_email='author email', # Package 작성자 이메일
15  url='https://example.com', # 프로젝트의 공식 URL
16  license='MIT', # Package의 라이선스 정보
17  python_requires='>=3.7', # Package가 지원하는 Python 버전
18  install_requires=[], # Package가 의존하는 외부 라이브러리 목록
19  packages=['package'], # 포함할 Python Package 목록
20  package_data={}, # Package에 포함할 추가 데이터 목록
21  keywords=[], # Package 검색 키워드
22  classifiers=[
23    'Development Status :: 4 - Beta',
24    'Intended Audience :: Developers',
25    'Programming Language :: Python :: 3',
26    'Operating System :: OS Independent',
27    'License :: OSI Approved :: MIT License',
28  ] # Package 분류
29)

Package 배포 #

1python setup.py bdist_wheel
  • 명령어를 실행하면 Package 파일들이 생성된다.

  • 아래 명령어를 통해 PyPI로 배포

    1python -m twine upload dist/{배포할 Package 파일}
  • 명령어를 실행하면 아래와 같이 API 토큰을 입력하라고 한다.

  • API 토큰은 PyPI 사이트에 로그인한 후, Account settings에서 발급받을 수 있다.

    1Uploading distributions to https://upload.pypi.org/legacy/
    2Enter your API token: 
  • 이후 올바른 API 토큰을 입력하면 배포가 시작되고, 패키지가 등록된다.

Package 설치 #

  • Package 설치하려면 Terminal을 열고 Package Directory로 이동한 후 다음 명령어를 실행한다.

    1pip install .
  • 이 명령어를 실행하면 Package가 Local 환경에 설치된다.

Package 사용 #

  • 설치된 Package를 다른 Python Script에서 사용할 수 있다.
    1from my_package import my_utils
Advertisement