ππ¦ ΠΠ°Ρ ΠΊΠΎΠ΄ Π΄ΠΎΡΡΠΎΠΈΠ½ PyPI: ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°ΡΡ Python-ΠΏΠ°ΠΊΠ΅Ρ
ΠΡΠ°ΡΠΊΠ°Ρ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ ΠΏΠΎ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ Python-ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² Π½Π° PyPI. Π£Π·Π½Π°ΠΉΡΠ΅, ΠΊΠ°ΠΊ ΡΡΡΡΠΊΡΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΏΡΠΎΠ΅ΠΊΡ, Π½Π°ΡΡΡΠΎΠΈΡΡ ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΡΠ΅ ΠΈ Π·Π°Π³ΡΡΠ·ΠΈΡΡ ΡΠ²ΠΎΠΉ ΠΏΠ°ΠΊΠ΅Ρ Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ.
ΠΠ°ΠΉΠΊ ΠΡΠΈΡΠΊΠΎΠ»Π», ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠΉ ΠΏΠΎΠΏΡΠ»ΡΡΠΈΠ·Π°ΡΠΎΡ Python, Π½Π°ΠΏΠΈΡΠ°Π» ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΡΠΉ Π³Π°ΠΉΠ΄ ΠΏΠΎ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ PyPI. ΠΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΡΠ°Π³ΠΎΠ² Π²ΠΊΡΠ°ΡΡΠ΅ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ°ΠΊ:
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΡΡΡΠΊΡΡΡΡ ΠΏΠ°ΠΊΠ΅ΡΠ°
- Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΠΏΠ°ΠΏΠΊΡ src, Π²Π½ΡΡΡΠΈ ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΠ°Π·ΠΌΠ΅ΡΡΠΈΡΠ΅ Π²Π°ΡΡ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ. Π ΡΡΡ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ ΠΏΠΎΠΌΠ΅ΡΡΠΈΡΠ΅ __init__.py β ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΡΡΡΡΠΌ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΡΠΎΡ ΡΠ°ΠΉΠ» ΠΏΡΠΎΡΡΠΎ Π΄Π°Π΅Ρ Python ΠΏΠΎΠ½ΡΡΡ, ΡΡΠΎ ΠΏΠ°ΠΏΠΊΠ° ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠ°ΠΊΠ΅ΡΠΎΠΌ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ.
- ΠΠ°ΡΠ΅ΠΌ ΠΏΠΎΠΌΠ΅ΡΡΠΈΡΠ΅ Π² ΠΏΠ°ΠΏΠΊΡ Π²ΡΠ΅ ΡΠ°ΠΉΠ»Ρ ΠΏΡΠΎΠ΅ΠΊΡΠ°.
- ΠΠΎΠ±Π°Π²ΡΡΠ΅ ΡΠ°ΠΉΠ» Π»ΠΈΡΠ΅Π½Π·ΠΈΠΈ, pyproject.toml, README.md ΠΈ ΠΏΠ°ΠΏΠΊΡ tests.
ΠΡΠ±ΠΎΡ ΡΠΈΡΡΠ΅ΠΌΡ ΡΠ±ΠΎΡΠΊΠΈ
Π ΡΠ°ΠΉΠ»Π΅ pyproject.toml ΡΠΊΠ°ΠΆΠΈΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ ΡΠ±ΠΎΡΠΊΠΈ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Hatchling, setuptools, Flit, PDM).
ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΡΡ
Π pyproject.toml Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΠΏΠ°ΠΊΠ΅ΡΠ΅ β Π½Π°Π·Π²Π°Π½ΠΈΠ΅, Π²Π΅ΡΡΠΈΡ, Π°Π²ΡΠΎΡΠΎΠ², ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΡΠ΅ Π²Π΅ΡΡΠΈΠΈ Python, ΠΊΠ»Π°ΡΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ ΠΈ URL-Π°Π΄ΡΠ΅ΡΠ°.
ΠΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠ° README ΠΈ Π»ΠΈΡΠ΅Π½Π·ΠΈΠΈ
- Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΡΠΉ README.md Ρ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡΠΌΠΈ ΠΏΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅, ΠΏΡΠΈΠΌΠ΅ΡΠ°ΠΌΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΈ Π΄ΡΡΠ³ΠΎΠΉ Π²Π°ΠΆΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ΅ΠΉ.
- ΠΡΠ±Π΅ΡΠΈΡΠ΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΡΡ Π»ΠΈΡΠ΅Π½Π·ΠΈΡ Π΄Π»Ρ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΠ°ΠΊΠ΅ΡΠ°.
ΠΠ΅Π½Π΅ΡΠ°ΡΠΈΡ ΠΏΠ°ΠΊΠ΅ΡΠ°
- Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ build:
python3 -m pip install --upgrade build
- ΠΠ°ΠΏΡΡΡΠΈΡΠ΅ ΡΠ±ΠΎΡΠΊΡ:
python3 -m build
- ΠΠΎΡΠ»Π΅ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ Π² ΠΏΠ°ΠΏΠΊΠ΅ dist ΠΏΠΎΡΠ²ΡΡΡΡ ΡΠ°ΠΉΠ»Ρ .whl ΠΈ .tar.gz
ΠΠ°Π³ΡΡΠ·ΠΊΠ° Π½Π° PyPI
- ΠΠ°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΡΠΉΡΠ΅ΡΡ Π½Π° TestPyPI (https://test.pypi.org)
- Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ API-ΡΠΎΠΊΠ΅Π½ Π² Π½Π°ΡΡΡΠΎΠΉΠΊΠ°Ρ Π°ΠΊΠΊΠ°ΡΠ½ΡΠ°
- Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ twine:
python3 -m pip install --upgrade twine
- ΠΠ°Π³ΡΡΠ·ΠΈΡΠ΅ ΠΏΠ°ΠΊΠ΅Ρ Π½Π° TestPyPI:
python3 -m twine upload --repository testpypi dist/*
- ΠΡΠΎΠ²Π΅ΡΡΡΠ΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΡ ΠΏΠ°ΠΊΠ΅ΡΠ° Ρ TestPyPI
ΠΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ PyPI
- ΠΠ°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΡΠΉΡΠ΅ΡΡ Π½Π° PyPI (https://pypi.org)
- Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ API-ΡΠΎΠΊΠ΅Π½
- ΠΠ°Π³ΡΡΠ·ΠΈΡΠ΅ ΠΏΠ°ΠΊΠ΅Ρ:
python -m twine upload dist/*
- ΠΡΠΎΠ²Π΅ΡΡΡΠ΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΡ Ρ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ³ΠΎ PyPI
ΠΠ°ΠΆΠ½ΡΠ΅ ΠΌΠΎΠΌΠ΅Π½ΡΡ Π΄Π»Ρ ΡΡΠΏΠ΅ΡΠ½ΠΎΠΉ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ
- ΠΡΠ±Π΅ΡΠΈΡΠ΅ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΠΎΠ΅ ΠΈΠΌΡ Π΄Π»Ρ ΠΏΠ°ΠΊΠ΅ΡΠ°.
- Π’ΡΠ°ΡΠ΅Π»ΡΠ½ΠΎ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΡΡΠ΅ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΠΈ README.
- ΠΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠΈΡΡΠΉΡΠ΅ ΠΏΠ°ΠΊΠ΅Ρ Π½Π° TestPyPI ΠΏΠ΅ΡΠ΅Π΄ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠ΅ΠΉ Π½Π° ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ PyPI.
- Π£Π±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ Π²Π°Ρ ΠΏΠ°ΠΊΠ΅Ρ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌ Ρ Π·Π°ΡΠ²Π»Π΅Π½Π½ΡΠΌΠΈ Π²Π΅ΡΡΠΈΡΠΌΠΈ Python.