Intro

Guide from PyPA: https://packaging.python.org/en/latest

ΠŸΠ°ΠΊΠ΅Ρ‚Ρ‹ β€” согласно Π³Π°ΠΉΠ΄Ρƒ Π²Ρ‹ΡˆΠ΅ β€” всС, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ собрано для дистрибуции, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ β€” это Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π² ΠΊΠΎΡ€Π½Π΅ содСрТит pyproject.toml, setup.py ΠΈΠ»ΠΈ setup.cfg (послСдниС Π΄Π²Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ setuptools).

Дистрибуция (Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΈ инструмСнты):

  • Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΌ ΠΊΠΎΠ΄ΠΎΠΌ (ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚, Ссли срСда, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ ΠΊΠΎΠ΄ соотвСтствуСт вашСй)

    • НазываСтся Source distribution package ΠΈΠ»ΠΈ sdist (собираСт Π² Π°Ρ€Ρ…ΠΈΠ² .tar.gz)

    • МоТно ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ Ρ‡Π΅Ρ€Π΅Π· ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Π΅ инструмСнты: python -m build --sdist

  • Π‘ΠΎΠ±Ρ€Π°Π½Π½Ρ‹ΠΌ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠΌ

    • НазываСтся Built distribution package (ΠΈΠ»ΠΈ wheels)

    • Wheel-Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ (ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ pip, ΠΏΡ€ΠΈΡˆΠ΅Π» Π½Π° Π·Π°ΠΌΠ΅Π½Ρƒ Egg-Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρƒ)

    • Egg-Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ (ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ setuptools)

Π‘Π±ΠΎΡ€Ρ‰ΠΈΠΊΠΈ состоят ΠΈΠ· Π΄Π²ΡƒΡ… частСй:

  • Build Frontend β€” это инструмСнты, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠΎΠ±ΠΈΡ€Π°ΡŽΡ‚ ΠΈΠ· исходного ΠΊΠΎΠ΄Π° ΠΏΠ°ΠΊΠ΅Ρ‚ для дистрибуции. ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ build frontend β€” pip ΠΈ build, poetry, hatch ΠΈ Π΄Ρ€. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Build Backend's.

    • Π‘Π±ΠΎΡ€ΠΊΠ°:

~ python -m pip install --upgrade build
~ cat pyproject.toml
~ python -m build
~ ls -al
dist/
β”œβ”€β”€ example_package_YOUR_USERNAME_HERE-0.0.1-py3-none-any.whl
└── example_package_YOUR_USERNAME_HERE-0.0.1.tar.gz
  • Build Backend β€” это Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡƒΠΌΠ΅ΡŽΡ‚ ΡΠΎΠ±ΠΈΡ€Π°Ρ‚ΡŒ ΠΈΠ· исходного ΠΊΠΎΠ΄Π° ΠΏΠ°ΠΊΠ΅Ρ‚ для дистрибуции для Ρ€Π°Π·Π½Ρ‹Ρ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ, ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠΉ ΠΈ Ρ‚ΠΏ. ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹: hatchling, setuptools, meson, flit, poetry-core ΠΈ Ρ‚Π΄

ΠŸΡ€ΠΎ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ Π² PyPI Ρ‡Π΅Ρ€Π΅Π· twine.

Last updated