pyproject.toml 파일을 빌드하는 방법

이 자습서에서는 간단한pyproject.toml 파일을 빌드하는 방법을 안내합니다. 나는 샘플pyproject.toml을 포함할 뿐만 아니라 내 자신pyproject.toml을 구성하는 방법을 배울 때 매우 도움이 되는 일부 리소스에 대한 링크를 포함할 것입니다. 먼저 전체pyproject.toml를 표시한 다음 파일의 각 섹션의 용도를 분석하겠습니다. Setuptools에는 pyproject.toml에 대해 자세히 설명하고 setuptools와 함께 사용할 수 있는 방법을 설명하는 fantastic page이 있습니다.

샘플 pyproject.toml




# tells pip what build tool to use to build your package
[build-system]
requires = ["setuptools>=61.0"]
build-backend = "setuptools.build_meta"

# tells pip how to build your pypi webpage & what dependencies to install
[project]
name = "sample_pkg"
dynamic = ["readme"]
version = "0.0.30"
authors = [
  { name="Sharon Fitzpatrick", email="[email protected]" }]
description = "A tool that performs xyz"
dependencies = ["matplotlib",
  "numpy<1.23.0"]
license = { file="LICENSE" }
requires-python = ">=3.8"
classifiers = [
    "Programming Language :: Python :: 3",
    "License :: OSI Approved :: MIT License",
    "Operating System :: OS Independent",
]

# (BETA) tells setuptools you will be using a readme file for the long description field for your pypi profile.
[tool.setuptools.dynamic]
readme = {file = ["README.md"]}

# (OPTIONAL) tells pypi that these urls are where your project's source code and issue tracker reside
[project.urls]
"Homepage" = "https://github.com/pypa/packaging.python.org"
"Bug Tracker" = "https://github.com/pypa/packaging.python.org/issues"


[빌드 시스템]


  • pip 패키지를 빌드하는 데 사용할 빌드 도구를 pip에 알려줍니다. poetry , hatchling , setuptools 등과 같은 빌드 도구를 선택하여 패키지를 빌드할 수 있습니다. build-system가 없으면 pip는 패키지를 만드는 데 사용한 도구를 추측해야 합니다.pyproject.toml 파일체크pip's documentation에 대해 더 알고 싶다면

  • 요구 = ["setuptools>=61.0"]


  • 은 패키지
  • 를 빌드하기 위해 호환되는 setuptools 버전을 pip에 정확히 알려줍니다.

    빌드 백엔드 = "setuptools.build_meta"


  • 은 pip에게 setuptools를 사용하여 패키지
  • 를 빌드할 것임을 알립니다.

    [프로젝트]


  • 이 섹션은 pip에게 패키지의 메타데이터를 알려줍니다. 패키지의 메타데이터는 패키지 이름, 버전 번호 및 종속성과 같이 패키지를 설명하는 정보입니다.

  • 이름 = "sample_pkg"


  • pip에게 패키지 이름을 알려줍니다. 이것은 pypi에서 고유한 이름이어야 합니다.

  • 동적 = ["추가 정보"]


  • readme 파일에서 동적으로 long description를 생성할 것임을 setuptools에 알립니다. long description는 pypi의 프로젝트 페이지에 표시되는 것입니다.

  • 버전 = "0.0.30"


  • pip가 패키지의 현재 버전임을 알립니다
  • .

    저자 = [{ name="Sharon Fitzpatrick",email="[email protected]" }]


  • pip가 패키지 작성자임을 알립니다
  • .
  • 제대로 작동하려면 작성자 이름과 이메일을 모두 포함해야 합니다
  • .

    description = "xyz를 수행하는 도구"


  • pip에게 패키지의 pypi 페이지에 표시될 간단한 설명을 알려줍니다.

  • 종속성 = ["matplotlib","numpy<1.23.0"]


  • 패키지를 실행하는 데 필요한 종속성을 pip에 알려줍니다
  • .
  • 패키지와 호환되는 패키지 버전도 지정할 수 있습니다
  • .

    라이센스 = { 파일="라이센스" }


  • pip에게 저장소에 있는 LICENSE라는 파일을 라이선스로 사용할 것임을 알립니다
  • .

    요구-파이썬 = ">=3.8"


  • 패키지에 필요한 Python 버전을 pip에 알려줌

  • 분류자 = ["프로그래밍 언어 :: Python :: 3","라이센스 :: OSI 승인 :: MIT 라이센스","운영 체제 :: OS 독립",]


  • PyPi에서 각 패키지의 릴리스를 분류하는 데 사용되며, 패키지가 누구를 위한 것인지, 어떤 시스템에서 실행할 수 있는지, 패키지가 얼마나 성숙했는지 설명합니다.
  • full list of classifiers from pypi 을(를) 찾을 수 있습니다.

  • [도구.설정도구.동적]


  • 이 섹션은 setuptools에만 적용되며 아직 베타 버전입니다. Read more here.
  • 다음 필드가 저장소
  • 에 포함된 파일에 의해 동적으로 채워짐을 알립니다setuptools.

    readme = {파일 = ["README.md"]}


  • setuptools pypi 프로필의 자세한 설명 필드에 readme 파일을 사용하게 될 것임을 알립니다.

  • 참고: README 파일의 이름은 정확히 README로 지정해야 합니다.

  • 참고: GitHub 스타일README.mdpypi에서 올바르게 렌더링되지 않을 수 있습니다
  • .

    [프로젝트.URL]


  • 패키지와 관련된 URL을 pypi에 알려주는 선택적 섹션입니다.
    ### "홈페이지"= "https://github.com/pypa/packaging.python.org "
  • 패키지가 어디에서 왔는지 pypi에 알려줍니다(선택 사항).
    ### "버그 추적기"= "https://github.com/pypa/packaging.python.org/issues "
  • 프로젝트의 문제 및 버그가 추적되는 위치를 pypi에 알려줍니다(선택 사항)
  • .

    PyPi에 업로드할 준비가 되셨나요?



    이제 pyproject.toml 파일을 빌드하는 방법을 알았으므로 패키지를 PyPi에 업로드할 준비가 되었습니까? 방법을 알려주는 가이드를 만들었습니다.

    좋은 웹페이지 즐겨찾기