Как ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ зависимости python

Poetry β€” прСкрасная Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π° pip (ΡˆΠΏΠ°Ρ€Π³Π°Π»ΠΊΠ°)

ΠŸΡ€Π΅Π΄Π»Π°Π³Π°ΡŽ Ρ‚Π΅ΠΌ, ΠΊΡ‚ΠΎ ΠΏΠΈΡˆΠ΅Ρ‚ Π½Π° Python, ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ с Π΄Π°Π½Π½Ρ‹ΠΌ инструмСнтом, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ это ΠΎΡ‡Π΅Π½ΡŒ простой ΠΈ ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΉ Π² использовании инструмСнт, ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚ΡŒ Π²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.

Установка

Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ poetry Π½Π° windows ΠΌΠΎΠΆΠ½ΠΎ Π»ΠΈΠ±ΠΎ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ pip:

Π›ΠΈΠ±ΠΎ Π±ΠΎΠ»Π΅Π΅ Π³ΠΈΠ±ΠΊΠΈΠΌ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠΌ Ρ‡Π΅Ρ€Π΅Π· powershell:

ΠžΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ pip

Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ зависимости Π² pip Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ:

Π§Ρ‚ΠΎ для poetry Π·Π°ΠΉΠΌΠ΅Ρ‚ всСго 2 слова:

ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ зависимостСй Π² pip ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ:

Однако Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΠΎΠΊΠ°Π·Π°Π½Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ вСрсии Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ, Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ возмоТности ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ структуру всСх ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² с ΠΈΡ… зависимостями. Π’ poetry Π² Ρ„Π°ΠΉΠ»Π΅ poetry.lock ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ свСдСния ΠΎΠ±ΠΎ всСх установлСнных ΠΏΠ°ΠΊΠ΅Ρ‚Π°Ρ…, ΠΊΠΎΠΌΠ°Π½Π΄Π°:

ΠŸΠΎΠΊΠ°ΠΆΠ΅Ρ‚ Π΄Ρ€Π΅Π²ΠΎΠ²ΠΈΠ΄Π½ΡƒΡŽ структуру ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² с ΠΈΡ… Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ зависимостями.

Π’Π°ΠΊ ΠΆΠ΅ запуск ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π² pip (Π² случаС с Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΌ ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ΠΌ) создаСт нСудобства, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ Π΄Π΅Π»ΠΎΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°ΠΉΡ‚ΠΈ Π² это самоС ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹:

И Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π·Π°Ρ‚Π΅ΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ измСнСния с ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ. Π’ poetry Π½Π΅Ρ‚ нСобходимости Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠ΅ ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅, достаточно лишь Π·Π°ΠΉΡ‚ΠΈ Π² ΠΏΠ°ΠΏΠΊΡƒ с ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ ΠΈ Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ. Poetry сам Π½Π°ΠΉΠ΄Π΅Ρ‚ Π½ΡƒΠΆΠ½ΠΎΠ΅ ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅. Π’Π°ΠΊΠΆΠ΅ Π² poetry ΠΌΠΎΠΆΠ½ΠΎ ΠΌΠ΅Π½ΡΡ‚ΡŒ Π²Π΅Ρ€ΡΠΈΡŽ python Π±Π΅Π· нСобходимости ΠΌΠ΅Π½ΡΡ‚ΡŒ староС Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠ΅ ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅.

Π­Ρ‚ΠΎ лишь малая Ρ‡Π°ΡΡ‚ΡŒ прСимущСств. Π”Π°Π»Π΅Π΅ рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΈ структуру poetry Ρ„Π°ΠΉΠ»ΠΎΠ².

pyproject.toml

documentation- URL Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°

main-run = ‘new_proj.main:run’ (послС Ρ‡Π΅Π³ΠΎ достаточно Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ poetry main-run ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ запуск Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ run Π² Ρ„Π°ΠΉΠ»Π΅ new_prof/main.py)

Π”Π°Π»Π΅Π΅ зависимости ΠΌΠΎΠΆΠ½ΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ двумя способами:

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π΄Π°Π½Π½Ρ‹Ρ… Π² pyproject.toml

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹

Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΠ°ΠΊΠ΅Ρ‚Π½Ρ‹ΠΌ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ΠΎΠΌ poetry Π² ΡƒΠΆΠ΅ ΠΈΠΌΠ΅ΡŽΡ‰Π΅ΠΌΡΡ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅, достаточно Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ:

Π”Π°Π»Π΅Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΎ Π·Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ основной ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅

ΠœΠ΅Ρ‚ΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹:

—description: описаниС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°

—python: совмСстимыС вСрсии Python

—dependency: Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΡ‹ΠΉ ΠΏΠ°ΠΊΠ΅Ρ‚ с вСрсиСй ΠΏΠ°ΠΊΠ΅Ρ‚Π°

—dev-dependency: трСбования ΠΊ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅

ПослС Ρ‡Π΅Π³ΠΎ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ появится Ρ„Π°ΠΉΠ» pyproject.toml, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π»ΡŽΠ±Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅.

install

Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ зависимости ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° достаточно Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

Poetry считываСт Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· pyproject.toml, строит Π΄Π΅Ρ€Π΅Π²ΠΎ зависимостСй ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, Ρ€Π°Π·Ρ€Π΅ΡˆΠ°Ρ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с вСрсиями зависимостСй, ΠΈ устанавливаСт всС ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹. Однако, Ссли Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ ΡƒΠΆΠ΅ Π΅ΡΡ‚ΡŒ Ρ„Π°ΠΉΠ» poetry.lock, Ρ‚ΠΎ Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Ρ‚ΠΎΡ‡Π½Ρ‹Π΅ вСрсии ΠΈΠ· этого Ρ„Π°ΠΉΠ»Π°.

ΠœΠ΅Ρ‚ΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹:

—remove-untracked: ΡƒΠ΄Π°Π»ΠΈΡ‚ старыС ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ большС Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅

—no-dev: dev ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒΡΡ

update

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ вСрсии зависимостСй (Ρ‚Π΅ΠΌ самым ΠΎΠ±Π½ΠΎΠ²ΠΈΠ² Ρ„Π°ΠΉΠ» poetry.lock) достаточно Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ:

Π’Π°ΠΊΠΆΠ΅ Π΅ΡΡ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ лишь ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹:

ΠœΠ΅Ρ‚ΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹:

—no-dev : ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ dev ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ²

—lock : Π½Π΅ устанавливаСт ΠΈ Π½Π΅ обновляСт ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹, Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ обновляСт Ρ„Π°ΠΉΠ» poetry.lock

Π§Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ достаточно Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ:

МоТно ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Π²Π΅Ρ€ΡΠΈΡŽ ΠΏΠ°ΠΊΠ΅Ρ‚Π°:

МоТно ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹:

—dev (-D): установит ΠΏΠ°ΠΊΠ΅Ρ‚ Π² качСствС dev зависимости

—path: ΠΏΡƒΡ‚ΡŒ ΠΊ ΠΏΠ°ΠΊΠ΅Ρ‚Ρƒ (Ссли ΠΏΠ°ΠΊΠ΅Ρ‚ Π»Π΅ΠΆΠΈΡ‚ локально)

—lock : Π½Π΅ устанавливаСт зависимости, Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ обновляСт Ρ„Π°ΠΉΠ» poetry.lock

remove

Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ достаточно Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ:

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹:

—dev : ΡƒΠ΄Π°Π»ΠΈΡ‚ ΠΏΠ°ΠΊΠ΅Ρ‚ ΠΈΠ· dev зависимостСй

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ зависимости ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° достаточно Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ:

Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ poetry show

Если Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌ ΠΏΠ°ΠΊΠ΅Ρ‚Π΅:

Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ poetry show pygame

ΠŸΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π΄Π΅Ρ€Π΅Π²ΠΎ зависимостСй ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ:

Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹:

—tree: список зависимостСй Π² Π²ΠΈΠ΄Π΅ Π΄Π΅Ρ€Π΅Π²Π°

—latest (-l): ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ послСдниС вСрсии ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ²

—outdated (-o): ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ послСдниС вСрсии Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΡ… ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ²

Π§Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ достаточно Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ:

PyCharm & Poetry

Π’ PyCharm 2021.3 Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ Poetry. Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΡ€ΠΈ создании ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΌΠΎΠΆΠ½ΠΎ сразу ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ poetry основным ΠΏΠ°ΠΊΠ΅Ρ‚Π½Ρ‹ΠΌ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ΠΎΠΌ. ΠŸΠ΅Ρ€Π΅Π΄ использованиСм Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ executable Π²Π΅Ρ€ΡΠΈΡŽ poetry (Π½Π° windows Ρ‡Π΅Ρ€Π΅Π· poweshell):

ПослС Ρ‡Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π±Π΅Π· ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Poetry ΠΏΡ€ΠΈ создании ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°:

Как ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ зависимости python. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Как ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ зависимости python. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Как ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ зависимости python. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Как ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ зависимости python. Π€ΠΎΡ‚ΠΎ Как ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ зависимости pythonУстановка poetry ΠΊΠ°ΠΊ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² Π² Pycharm

Как ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ зависимости python. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Как ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ зависимости python. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Как ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ зависимости python. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Как ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ зависимости python. Π€ΠΎΡ‚ΠΎ Как ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ зависимости pythonΠ‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°

ΠŸΡ€ΠΈ установкС ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² Ρ‡Π΅Ρ€Π΅Π· ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ PyCharm Ρ„Π°ΠΉΠ» pyproject.toml Π±ΡƒΠ΄Π΅Ρ‚ автоматичСски ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ‚ΡŒΡΡ сам:

ВСрсии зависимостСй

ΠŸΡ€ΠΈ установкС ΠΏΠ°ΠΊΠ΅Ρ‚Π° ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Ρ‚ΠΎΡ‡Π½ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

Но ΠΈΠ½ΠΎΠ³Π΄Π° Π΅ΡΡ‚ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ вСрсий ΠΏΠ°ΠΊΠ΅Ρ‚Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ обновлСния, Π² Ρ‚Π°ΠΊΠΎΠΌ случаС Π΅ΡΡ‚ΡŒ нСсколько способов ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½:

Π’ΠΎΡ‚ ΠΊΠ°ΠΊΠΈΠ΅ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Ρ‹ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‚ Π΄Π°Π½Π½Ρ‹Π΅ прСфиксы вСрсий:

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Pipenv β€” соврСмСнный ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ зависимостСй для Python-ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ²

P ipenv β€” ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ зависимостСй для Python-ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ². Π‘ Π΅Π³ΠΎ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ срСды ΠΈ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ зависимостями ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Pipenv Ρ€Π΅ΡˆΠ°Π΅Ρ‚ ряд ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π»ΠΈ ΠΏΡ€ΠΈ использовании pip, virtualenv ΠΈ requirements.txt.

Π§Π΅ΠΌ Ρ…ΠΎΡ€ΠΎΡˆ Pipenv

Π Π°Π½ΠΎ ΠΈΠ»ΠΈ ΠΏΠΎΠ·Π΄Π½ΠΎ, ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ сталкиваСтся с ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΠΉ контроля вСрсий ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² pip ΠΈ настройкой Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ окруТСния. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Pipenv Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅:

МоТно Π·Π°Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΎ pip ΠΈ virtualenv

Π’Π°ΠΌ большС Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ pip ΠΈ virtualenv ΠΏΠΎ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. Π’ pipenv этот Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π» Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ «ΠΈΠ· ΠΊΠΎΡ€ΠΎΠ±ΠΊΠΈ».

Requirements.txt большС Π½Π΅ Π½ΡƒΠΆΠ΅Π½

Для своСй Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ 2 Ρ„Π°ΠΉΠ»Π°: Pipfile (ΠΏΠΎ сути Π·Π°ΠΌΠ΅Π½Π° requirements.txt) ΠΈ Pipfile.lock (связываСт вСрсии ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ², Ρ‚Π΅ΠΌ самым обСспСчивая Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ).

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Ρ„Π°ΠΉΠ»Π° Pipfile :

[[source]] name = «pypi» url = «https://pypi.org/simple» verify_ssl = true [dev-packages] [packages] questionary = «*» [requires] python_version = «3.7»

Π’Π°ΡˆΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Π²ΠΈΡΠ΅Ρ‚ΡŒ ΠΎΡ‚ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ вСрсии Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, Π° эта Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Π²ΠΈΡΠ΅Ρ‚ΡŒ ΠΎΡ‚ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ вСрсии Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ. Если ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡŒ настройку Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ, Π²ΠΎ всСм этом ΠΎΡ‡Π΅Π½ΡŒ просто Π·Π°ΠΏΡƒΡ‚Π°Ρ‚ΡŒΡΡ 🤷. Pipenv создан, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±Π»Π΅Π³Ρ‡ΠΈΡ‚ΡŒ эту Π·Π°Π΄Π°Ρ‡Ρƒ. Он отслСТиваСт Π΄Π΅Ρ€Π΅Π²ΠΎ взаимозависимостСй вашСго прилоТСния Π² Ρ„Π°ΠΉΠ»Π΅ с ΠΈΠΌΠ΅Π½Π΅ΠΌ Pipfile.lock Π’ свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, Pipfile.lock Ρ‚Π°ΠΊΠΆΠ΅ провСряСт, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π»ΠΈ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Ρ‹Π΅ вСрсии зависимостСй.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Ρ„Π°ΠΉΠ»Π° Pipfile.lock :

Pipenv ΡƒΠ΄ΠΎΠ±Π΅Π½, ΠΊΠΎΠ³Π΄Π° Π½Π°Π΄ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ нСсколько Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ². Рассмотрим простой ΠΏΡ€ΠΈΠΌΠ΅Ρ€ β€” компания Π²Π΅Π΄Π΅Ρ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ своСго ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ сайта. ΠœΠ°Ρ€ΠΈΡ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π°Π΄ Π²ΠΊΠ»Π°Π΄ΠΊΠΎΠΉ «ΠžΡ‚Ρ‡Π΅Ρ‚Ρ‹», Иван β€” Π½Π°Π΄ Π²ΠΊΠ»Π°Π΄ΠΊΠΎΠΉ «Π§Π°Ρ‚».

Если Π±Ρ‹ Иван ΠΈ ΠœΠ°Ρ€ΠΈΡ использовали Pipenv, Pipfile Π±Ρ‹Π» Π±Ρ‹ автоматичСски ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ Π² ΠΊΠΎΠΌΠΌΠΈΡ‚ ΠœΠ°Ρ€ΠΈΠΈ. Они Π±Ρ‹ сэкономили врСмя ΠΈ Π·Π°Π²Π΅Ρ€ΡˆΠΈΠ»ΠΈ свой ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ быстрСС. Π’ΠΎΡ‚ Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ Pipenv Ρ‚Π°ΠΊΠΈΠΌ Π²Π°ΠΆΠ½Ρ‹ΠΌ.

Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ собствСнныС ΡˆΠΎΡ€Ρ‚ΠΊΠ°Ρ‚Ρ‹

Pipenv позволяСт ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ собствСнныС ΡˆΠΎΡ€Ρ‚ΠΊΠ°Ρ‚Ρ‹ (сокращСния) Π² сСкции [scripts] Ρ„Π°ΠΉΠ»Π° Pipfile :

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π² консоли Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΡˆΠΎΡ€Ρ‚ΠΊΠ°Ρ‚ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ pipenv run print_hello

Автоматизация Ρ€ΡƒΡ‚ΠΈΠ½Π½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡

Π‘ΠΎΠ»ΡŒΡˆΠ΅ Π½Π΅ придСтся Ρ‚Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ врСмя Π½Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Ρ€ΡƒΡ‚ΠΈΠ½Π½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡, выискивая ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρ‹ отсутствия синхронизации ΠΈ возникновСния ошибок Π² вСрсиях. Π’ΡΡŽ Ρ€ΡƒΡ‚ΠΈΠ½Π½ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ pipenv Π±Π΅Ρ€Π΅Ρ‚ Π½Π° сСбя:

Установка

Π‘Π°ΠΌΡ‹ΠΉ простой Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ β€” установка с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ pip.

Для Linux ΠΈ MacOS Π΅ΡΡ‚ΡŒ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ способ установки:

brew install pipenv

sudo apt install pipenv

sudo dnf install pipenv

pkg install py36-pipenv

ПослС установки, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ фактичСски Π·Π°Π±Ρ‹Ρ‚ΡŒ ΠΎ pip β€” pipenv ΠΏΠΎ сути замСняСт pip ΠΈ virtualenv.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования

Рассмотрим простой ΠΏΡ€ΠΈΠΌΠ΅Ρ€ использования pipenv.

Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΡƒΡŽ срСду

Для ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ срСды Python 3, Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

Если Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ срСды Π΅Ρ‰Π΅ Π½Π΅ сущСствуСт, ΠΎΠ½Π° Π±ΡƒΠ΄Π΅Ρ‚ создана.

УстанавливаСм ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹

Π”Π°Π»Π΅Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ сторонний ΠΏΠ°ΠΊΠ΅Ρ‚. БущСствуСт 3 Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° установки:

pipenv install scrapy

Установится послСдняя вСрсия ΠΏΠ°ΠΊΠ΅Ρ‚Π°. ΠŸΡ€ΠΈ этом Π² Pipfile добавится запись scrapy = «*»

Установятся всС ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ ΠΈΠ· Pipfile ΠΈ обновится Pipfile.lock

Установятся всС ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ ΠΈΠ· Pipfile.lock

ЗапускаСм скрипты

Π—Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ python-скрипты ΠΌΠΎΠΆΠ½ΠΎ нСсколькими способами:

pipenv run python script-name.py

Настройка pipenv Π² PyCharm

ΠŸΡ€ΠΎΡ†Π΅ΡΡ настройки pipenv Π² PyCharm:

ПослС Ρ‚ΠΎΠ³ΠΎ ΠΊΠ°ΠΊ всС шаги Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Ρ‹, для Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° устанавливаСтся новая срСда pipenv ΠΈ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹, пСрСчислСнныС Π² Pipfile.

Если Π²Ρ‹ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚Π΅ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ с Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½Ρ‹ΠΌ Ρ„Π°ΠΉΠ»ΠΎΠΌ Pipfile, Π½ΠΎ Π² Π½Π΅ΠΌ Π½Π΅ настроСн ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€, PyCharm ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΡ‚ Π²Π°ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ срСду Pipenv. Если Π²Ρ‹ Π²Ρ‹Π±Π΅Ρ€Π΅Ρ‚Π΅ эту ΠΎΠΏΡ†ΠΈΡŽ, PyCharm автоматичСски установит для вас pipenv.

ΠšΠΎΠΌΠ°Π½Π΄Ρ‹ pipenv

Pipenv ΠΈ Docker

Π’ качСствС Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ экспорт Π² самой сборкС:

—deploy β€” pipenv выдаст ΠΎΡˆΠΈΠ±ΠΊΡƒ Ссли Pipfile.lock устарСл, вмСсто Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠ³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ Pipfile.lock Ρ„Π°ΠΉΠ».

—system β€” ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ зависимости Π² Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΡƒΡŽ систСму.

Рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Dockerfile для развСртывания Flask прилоТСния:

ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ pipenv

Pipenv Π΄Π°Π΅Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ своС ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… окруТСния ( Environment Variables ). ΠŸΡ€ΠΎΡΡ‚ΠΎ создайтС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ ΠΈ pipenv ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΡ‚ Π΅Ρ‘. Π’ΠΎΡ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡ… Π½ΠΈΡ…:

ΠŸΠΎΠ»Π½Ρ‹ΠΉ список ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π² ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ pipenv, Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ » Configuration With Environment Variables «.

Π‘Ρ‚ΠΎΠΈΡ‚ Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Pipenv?

ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎ Π΄Π°! 🎉 Pipenv свСдСт всю Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΏΠΎ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΡŽ ΠΏΠ°ΠΊΠ΅Ρ‚Π°ΠΌΠΈ ΠΈ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΌ ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ΠΌ Π² ΠΎΠ΄Π½Ρƒ консоль, Ρ€Π΅ΡˆΠΈΡ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ с вСрсионированиСм ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ Π½ΠΎΠ²Ρ‹ΠΉ, вСсьма приятный Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π».

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Pip: ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ Π² Python

Pip β€” ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² для Python, Ρ€Π°Π±ΠΎΡ‚Π° с Π½ΠΈΠΌ осущСствляСтся Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡƒΡŽ строку. Pip Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ, Ссли Π²Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ΡΡŒ Python вСрсии 2.7.9 ΠΈ Π½ΠΎΠ²Π΅Π΅ ΠΈΠ»ΠΈ вСрсии 3.4 ΠΈ Π½ΠΎΠ²Π΅Π΅. Если pip установлСн, Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ввСсти Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡƒΡŽ строку:

ΠšΠΎΠΌΠ°Π½Π΄Ρ‹ ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΡƒΠΊΠ°Π·Π°Π½Ρ‹ для Windows, Ρ€Π°Π±ΠΎΡ‚Π° с pip Π² Linux ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ.

Π’Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ справку ΠΏΠΎ основным ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌ.

Установка pip для Python

Если pip Π½Π΅ установлСн, Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΡΠΊΠ°Ρ‡Π°Ρ‚ΡŒ скрипт. Π’Ρ‹Π±ΠΈΡ€Π°ΠΉΡ‚Π΅ ΠΏΠ°ΠΏΠΊΡƒ с Π½ΠΎΠΌΠ΅Ρ€ΠΎΠΌ вашСй вСрсии Python. ПослС этого Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС ΠΏΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Π² ΠΏΠ°ΠΏΠΊΡƒ со скриптом ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

Если pip установлСн Π² ΠΏΠ°ΠΏΠΊΡƒ ProgramFiles, Ρ‚ΠΎ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡƒΡŽ строку ΠΎΡ‚ администратора.

Если Π²Ρ‹ установили pip, Π½ΠΎ всС Ρ€Π°Π²Π½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚Π΅ ΠΎΡˆΠΈΠ±ΠΊΡƒ Π² консоли, Π½ΡƒΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΏΡƒΡ‚ΡŒ ΠΊ Ρ„Π°ΠΉΠ»Ρƒ pip.exe Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Path. Для этого Π·Π°ΠΉΠ΄ΠΈΡ‚Π΅ Π² свойства ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°>Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ систСмы>ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ срСды. Π—Π΄Π΅ΡΡŒ (Π² зависимости ΠΎ вСрсии Windows) Π»ΠΈΠ±ΠΎ Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ ΠΏΡƒΡ‚ΡŒ ΠΊ ΡƒΠΆΠ΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΌΡƒ Ρ‡Π΅Ρ€Π΅Π· Ρ‚ΠΎΡ‡ΠΊΡƒ с запятой, Π»ΠΈΠ±ΠΎ просто Π½Π°ΠΆΠΌΠΈΡ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈ скопируйтС ΠΏΡƒΡ‚ΡŒ Π² Π½ΠΎΠ²ΠΎΠ΅ ΠΏΠΎΠ»Π΅.

Если Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ pip Π½Π°ΠΏΠΈΡˆΠΈΡ‚Π΅ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС:

Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΊΠ΅Ρ‚Π°ΠΌΠΈ

Π§Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ установку ΠΏΠ°ΠΊΠ΅Ρ‚Π° с сайта pypi.org Π²Π²Π΅Π΄ΠΈΡ‚Π΅ Π² консоли:

Если Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ нСсколько вСрсий pip, Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΡƒΡŽ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Ρ‚Π°ΠΊ (начиная с вСрсии pip 0.8):

Π’Π°ΠΊΠΈΠΌ ΠΆΠ΅ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ Π²Π΅Ρ€ΡΠΈΡŽ Python:

Pip вСрсии 1.5 ΠΈ Π²Ρ‹ΡˆΠ΅ слСдуСт ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Ρ‚Π°ΠΊ:

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΏΠ°ΠΊΠ΅Ρ‚ Π²Π²Π΅Π΄ΠΈΡ‚Π΅:

Для удалСния ΠΏΠ°ΠΊΠ΅Ρ‚Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ uninstall:

ВывСсти список всСх установлСнных ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² Π² Ρ„Π°ΠΉΠ» ΠΌΠΎΠΆΠ½ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ :

ΠŸΡ€ΠΈ Π½Π°Π»ΠΈΡ‡ΠΈΠΈ Ρ‚Π°ΠΊΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°, ΠΌΠΎΠΆΠ½ΠΎ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ Π³Ρ€ΡƒΠΏΠΏΠ°ΠΌΠΈ:

НСобходимыС ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π½Π΅ заходя Π½Π° сайт pyPi.org (Π² Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ нСдоступно):

Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ подробности ΠΎΠ± установлСнном ΠΏΠ°ΠΊΠ΅Ρ‚Π΅ Π²Π²Π΅Π΄ΠΈΡ‚Π΅:

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ установлСны Π»ΠΈ всС зависимости для Π²Π°ΡˆΠΈΡ… ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ Ρ‚Π°ΠΊ:

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, с этими знаниями, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡΠΊΠ°Ρ‡Π°Ρ‚ΡŒ ΠΏΠ°ΠΊΠ΅Ρ‚ cowsay, Π·Π°ΠΉΡ‚ΠΈ Π² python, ΠΈ ввСсти этот тСкст:

Π“ΠΎΡ‚ΠΎΠ²ΠΎ! Π£ вас Π΅ΡΡ‚ΡŒ говорящая консольная ΠΊΠΎΡ€ΠΎΠ²Π°:

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Как ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ Π² Python β€” с PIP ΠΈ Π±Π΅Π·

Как ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ зависимости python. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Как ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ зависимости python. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Как ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ зависимости python. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Как ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ зависимости python. Π€ΠΎΡ‚ΠΎ Как ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ зависимости python

Как ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ зависимости python. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Как ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ зависимости python. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Как ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ зависимости python. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Как ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ зависимости python. Π€ΠΎΡ‚ΠΎ Как ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ зависимости python

Как ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ зависимости python. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Как ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ зависимости python. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Как ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ зависимости python. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Как ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ зависимости python. Π€ΠΎΡ‚ΠΎ Как ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ зависимости python

ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ, Π΄Π°Π²Π°ΠΉΡ‚Π΅ разбСрёмся, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠ°ΠΊΠ΅Ρ‚, Ρ‡Π΅ΠΌ ΠΎΠ½ отличаСтся ΠΎΡ‚ модуля, ΠΈ ΠΊΠ°ΠΊ с Π½ΠΈΠΌ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ. Π£ слова Β«ΠΏΠ°ΠΊΠ΅Ρ‚Β» ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΊ Python Π΄Π²Π° значСния.

Установка PIP для Python 3 ΠΈ 2

Если Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ окруТСния Π½Π° Π±Π°Π·Π΅ venv ΠΈΠ»ΠΈ virtualenv, pip ΡƒΠΆΠ΅ установлСн. Начиная с Python 3.4 (для Python 2 β€” с вСрсии 2.7.9) pip поставляСтся вмСстС с ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ΠΎΠΌ. Для Π±ΠΎΠ»Π΅Π΅ Ρ€Π°Π½Π½ΠΈΡ… вСрсий ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² Π½ΡƒΠΆΠ½ΠΎ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ. Π’Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² Π΄Π²Π°:

C ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ скрипта get_pip.py β€” быстро.

Π§Π΅Ρ€Π΅Π· setuptools β€” ΠΊΡ€ΠΎΠΌΠ΅ pip смоТСм ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ easy_install.

Π’Π°Ρ€ΠΈΠ°Π½Ρ‚ 1. Π‘ΠΊΠ°Ρ‡ΠΈΠ²Π°Π΅ΠΌ скрипт get_pip.py ΠΈ запускаСм Π² консоли. Для этого ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π» Ρ‡Π΅Ρ€Π΅Π· Win+R>»cmd»>OK ΠΈ пишСм:

ΠŸΠΎΠ»Π½Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π΅Π½ ΠΈ Π² Ρ‚ΠΎΠΌ случаС, Ссли Ρƒ вас Π½Π° ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅ нСсколько вСрсий Python ΠΈ Π²Ρ‹ ставитС ΠΏΠ°ΠΊΠ΅Ρ‚ для ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· Π½ΠΈΡ….

Π’Π°Ρ€ΠΈΠ°Π½Ρ‚ 2. Π‘ΠΊΠ°Ρ‡ΠΈΠ²Π°Π΅ΠΌ Π°Ρ€Ρ…ΠΈΠ² с setuptools ΠΈΠ· PYPI ΠΈ распаковываСм Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³. Π’ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π΅ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΠΌ Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ setuptools c Ρ„Π°ΠΉΠ»ΠΎΠΌ setup.py ΠΈ пишСм:

python setup.py install

Установка ΠΏΠ°ΠΊΠ΅Ρ‚Π° Π² pip

ΠŸΠΎΡ€Π° Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ pip Π² Python ΠΈ Π½Π°Ρ‡Π°Ρ‚ΡŒ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ ΠΈΠ· консоли:

pip install имя_ΠΏΠ°ΠΊΠ΅Ρ‚Π°

ΠžΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΏΠ°ΠΊΠ΅Ρ‚ Π½Π΅ слоТнСС:

Если Ρƒ вас послСдняя вСрсия ΠΏΠ°ΠΊΠ΅Ρ‚Π°, Π½ΠΎ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π΅Π³ΠΎ:

ΠŸΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ список установлСнных ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² Python ΠΌΠΎΠΆΠ½ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹:

Найти ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ ΠΏΠ°ΠΊΠ΅Ρ‚ ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ «pip search». О Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ… ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΡ‡Π΅ΡΡ‚ΡŒ Π² справкС, которая выдаСтся ΠΏΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ «pip help».

Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΊΠ΅Ρ‚Π° Python

Когда ΠΏΠ°ΠΊΠ΅Ρ‚ большС Π½Π΅ Π½ΡƒΠΆΠ΅Π½, пишСм:

pip uninstall имя_ΠΏΠ°ΠΊΠ΅Ρ‚Π°

Как ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ Π² Python Π±Π΅Π· pip

ΠΎΠ½ Π½Π΅ удаляСт ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹,

ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ‹Ρ‚Π°Ρ‚ΡŒΡΡ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π½Π΅Π΄ΠΎΠ·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Π½Ρ‹ΠΉ ΠΏΠ°ΠΊΠ΅Ρ‚.

Если Π½ΡƒΠΆΠ½ΠΎ ΡΠΊΠ°Ρ‡Π°Ρ‚ΡŒ ΠΏΠ°ΠΊΠ΅Ρ‚ ΠΈΠ· Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ источника, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°Π΄Π°Ρ‚ΡŒ URL ΠΈΠ»ΠΈ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ адрСс Π½Π° ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅:

Бписок ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ², установлСнных Ρ‡Π΅Ρ€Π΅Π· easy_install, хранится Π² Ρ„Π°ΠΉΠ»Π΅ easy-install.pth Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ /libs/site-packages/ вашСго Python.

К ΡΡ‡Π°ΡΡ‚ΡŒΡŽ, ΡƒΠ΄Π°Π»ΡΡ‚ΡŒ установлСнныС Ρ‡Π΅Ρ€Π΅Π· easy_install ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ pip. Если ΠΆΠ΅ Π΅Π³ΠΎ Π½Π΅Ρ‚, потрСбуСтся ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ ΠΏΠ°ΠΊΠ΅Ρ‚ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ ΠΈ ΡΡ‚Π΅Ρ€Π΅Ρ‚ΡŒ свСдСния ΠΎ Π½Π΅ΠΌ ΠΈΠ· easy-install.pth.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ ΡƒΠΌΠ΅Π΅Ρ‚Π΅ ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΈ ΡƒΠ΄Π°Π»ΡΡ‚ΡŒ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ для вашСй вСрсии Python.

ΠšΡΡ‚Π°Ρ‚ΠΈ, для Ρ‚Π΅Ρ…, ΠΊΡ‚ΠΎ ΠΈΠ·ΡƒΡ‡Π°Π΅Ρ‚ Python, ΠΌΡ‹ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΈΠ»ΠΈ список ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Ρ… ΠΈ ΠΏΡ€Π°ΠΊΡ‚ΠΈΡ‡Π½Ρ‹Ρ… совСтов.

Как ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ зависимости python. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Как ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ зависимости python. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Как ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ зависимости python. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Как ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ зависимости python. Π€ΠΎΡ‚ΠΎ Как ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ зависимости python

ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ, Π΄Π°Π²Π°ΠΉΡ‚Π΅ разбСрёмся, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠ°ΠΊΠ΅Ρ‚, Ρ‡Π΅ΠΌ ΠΎΠ½ отличаСтся ΠΎΡ‚ модуля, ΠΈ ΠΊΠ°ΠΊ с Π½ΠΈΠΌ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ. Π£ слова Β«ΠΏΠ°ΠΊΠ΅Ρ‚Β» ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΊ Python Π΄Π²Π° значСния.

Установка PIP для Python 3 ΠΈ 2

Если Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ окруТСния Π½Π° Π±Π°Π·Π΅ venv ΠΈΠ»ΠΈ virtualenv, pip ΡƒΠΆΠ΅ установлСн. Начиная с Python 3.4 (для Python 2 β€” с вСрсии 2.7.9) pip поставляСтся вмСстС с ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ΠΎΠΌ. Для Π±ΠΎΠ»Π΅Π΅ Ρ€Π°Π½Π½ΠΈΡ… вСрсий ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² Π½ΡƒΠΆΠ½ΠΎ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ. Π’Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² Π΄Π²Π°:

C ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ скрипта get_pip.py β€” быстро.

Π§Π΅Ρ€Π΅Π· setuptools β€” ΠΊΡ€ΠΎΠΌΠ΅ pip смоТСм ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ easy_install.

Π’Π°Ρ€ΠΈΠ°Π½Ρ‚ 1. Π‘ΠΊΠ°Ρ‡ΠΈΠ²Π°Π΅ΠΌ скрипт get_pip.py ΠΈ запускаСм Π² консоли. Для этого ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π» Ρ‡Π΅Ρ€Π΅Π· Win+R>»cmd»>OK ΠΈ пишСм:

ΠŸΠΎΠ»Π½Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π΅Π½ ΠΈ Π² Ρ‚ΠΎΠΌ случаС, Ссли Ρƒ вас Π½Π° ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅ нСсколько вСрсий Python ΠΈ Π²Ρ‹ ставитС ΠΏΠ°ΠΊΠ΅Ρ‚ для ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· Π½ΠΈΡ….

Π’Π°Ρ€ΠΈΠ°Π½Ρ‚ 2. Π‘ΠΊΠ°Ρ‡ΠΈΠ²Π°Π΅ΠΌ Π°Ρ€Ρ…ΠΈΠ² с setuptools ΠΈΠ· PYPI ΠΈ распаковываСм Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³. Π’ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π΅ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΠΌ Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ setuptools c Ρ„Π°ΠΉΠ»ΠΎΠΌ setup.py ΠΈ пишСм:

python setup.py install

Установка ΠΏΠ°ΠΊΠ΅Ρ‚Π° Π² pip

ΠŸΠΎΡ€Π° Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ pip Π² Python ΠΈ Π½Π°Ρ‡Π°Ρ‚ΡŒ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ ΠΈΠ· консоли:

pip install имя_ΠΏΠ°ΠΊΠ΅Ρ‚Π°

ΠžΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΏΠ°ΠΊΠ΅Ρ‚ Π½Π΅ слоТнСС:

Если Ρƒ вас послСдняя вСрсия ΠΏΠ°ΠΊΠ΅Ρ‚Π°, Π½ΠΎ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π΅Π³ΠΎ:

ΠŸΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ список установлСнных ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² Python ΠΌΠΎΠΆΠ½ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹:

Найти ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ ΠΏΠ°ΠΊΠ΅Ρ‚ ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ «pip search». О Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ… ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΡ‡Π΅ΡΡ‚ΡŒ Π² справкС, которая выдаСтся ΠΏΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ «pip help».

Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΊΠ΅Ρ‚Π° Python

Когда ΠΏΠ°ΠΊΠ΅Ρ‚ большС Π½Π΅ Π½ΡƒΠΆΠ΅Π½, пишСм:

pip uninstall имя_ΠΏΠ°ΠΊΠ΅Ρ‚Π°

Как ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ Π² Python Π±Π΅Π· pip

ΠΎΠ½ Π½Π΅ удаляСт ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹,

ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ‹Ρ‚Π°Ρ‚ΡŒΡΡ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π½Π΅Π΄ΠΎΠ·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Π½Ρ‹ΠΉ ΠΏΠ°ΠΊΠ΅Ρ‚.

Если Π½ΡƒΠΆΠ½ΠΎ ΡΠΊΠ°Ρ‡Π°Ρ‚ΡŒ ΠΏΠ°ΠΊΠ΅Ρ‚ ΠΈΠ· Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ источника, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°Π΄Π°Ρ‚ΡŒ URL ΠΈΠ»ΠΈ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ адрСс Π½Π° ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅:

Бписок ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ², установлСнных Ρ‡Π΅Ρ€Π΅Π· easy_install, хранится Π² Ρ„Π°ΠΉΠ»Π΅ easy-install.pth Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ /libs/site-packages/ вашСго Python.

К ΡΡ‡Π°ΡΡ‚ΡŒΡŽ, ΡƒΠ΄Π°Π»ΡΡ‚ΡŒ установлСнныС Ρ‡Π΅Ρ€Π΅Π· easy_install ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ pip. Если ΠΆΠ΅ Π΅Π³ΠΎ Π½Π΅Ρ‚, потрСбуСтся ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ ΠΏΠ°ΠΊΠ΅Ρ‚ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ ΠΈ ΡΡ‚Π΅Ρ€Π΅Ρ‚ΡŒ свСдСния ΠΎ Π½Π΅ΠΌ ΠΈΠ· easy-install.pth.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ ΡƒΠΌΠ΅Π΅Ρ‚Π΅ ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΈ ΡƒΠ΄Π°Π»ΡΡ‚ΡŒ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ для вашСй вСрсии Python.

ΠšΡΡ‚Π°Ρ‚ΠΈ, для Ρ‚Π΅Ρ…, ΠΊΡ‚ΠΎ ΠΈΠ·ΡƒΡ‡Π°Π΅Ρ‚ Python, ΠΌΡ‹ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΈΠ»ΠΈ список ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Ρ… ΠΈ ΠΏΡ€Π°ΠΊΡ‚ΠΈΡ‡Π½Ρ‹Ρ… совСтов.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ зависимостями Π² Python: ΠΏΠΎΡ…ΠΎΠΆΠ΅, ΡƒΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ

Как ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ зависимости python. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Как ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ зависимости python. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Как ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ зависимости python. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Как ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ зависимости python. Π€ΠΎΡ‚ΠΎ Как ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ зависимости pythonΠ’ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ популярных языков программирования ΠΈ экосистСм с зависимостями всС ΠΏΠ»ΠΎΡ…ΠΎ. Как ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, создатСли Π½ΠΎΠ²ΠΎΠ³ΠΎ языка программирования ΡƒΠ΄Π΅Π»ΡΡŽΡ‚ этому Π½Π΅ ΠΎΡ‡Π΅Π½ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ внимания: просто ΠΏΠΎΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ Π² Π½ΠΎΠ²ΠΎΠΌ языкС Π΅Ρ‰Π΅ Π½Π΅Ρ‚ сотСн тысяч Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ для Ρ€Π°Π·Π½Ρ‹Ρ… Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€ ΠΈ вСрсий, Π½Π΅Ρ‚Ρ€ΠΈΠ²ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ зависящих Π΄Ρ€ΡƒΠ³ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³Π°. А ΠΊΠΎΠ³Π΄Π° эти сотни тысяч Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ ΠΏΠΎΡΠ²Π»ΡΡŽΡ‚ΡΡ – ΡƒΠΆΠ΅ ΠΏΠΎΠ·Π΄Π½ΠΎ Ρ‡Ρ‚ΠΎ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ ΠΌΠ΅Π½ΡΡ‚ΡŒ.

ЕдинствСнным Π½Π° ΠΌΠΎΠ΅ΠΉ памяти ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ являСтся node.js, Π°Π²Ρ‚ΠΎΡ€Ρ‹ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΈ «с чистого листа» Π½Π° ΡƒΠ΄ΠΈΠ²Π»Π΅Π½ΠΈΠ΅ ΡƒΠ΄Π°Ρ‡Π½ΡƒΡŽ систСму управлСния зависимостями. Ну, ΠΊΠ°ΠΊ ΡƒΠ΄Π°Ρ‡Π½ΡƒΡŽ? ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌ Ρ‚Π°ΠΌ Ρ‚ΠΎΠΆΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ, начиная автовыполняСмыми скриптами ΠΈ заканчивая ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΎΠΌ ΠΎΡ‚ Π΄Ρ€Π΅Π²ΠΎΠ²ΠΈΠ΄Π½ΠΎΠΉ ΠΊ flat структурС Π² 3-ΠΉ вСрсии. Но ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Π½Π° Ρ‚ΠΎΡ‚ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π±Ρ‹Π»ΠΎ Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… языках, Π½ΠΎΠ΄Π° β€” это ΠΏΡ€ΠΎΡ€Ρ‹Π².

БовсСм Π½Π΅Π΄Π°Π²Π½ΠΎ экосистСма пополнилась Π½ΠΎΠ²ΠΎΠΉ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚ΠΎΠΉ rnpm, которая позволяСт ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ React Native зависимости. Π’ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ…, Π½Π° сСкундочку, ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π±ΠΈΠ½Π°Ρ€Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ для android ΠΈ ios. Для Ρ€Π°Π·Π½Ρ‹Ρ… Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€. И всС это Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΈΠ· ΠΊΠΎΡ€ΠΎΠ±ΠΊΠΈ. ΠœΡ‹ Π² Voximplant Ρ…ΠΎΡ€ΠΎΡˆΠΎ Π·Π½Π°ΠΊΠΎΠΌΡ‹ с этой ΡˆΡ‚ΡƒΠΊΠΎΠΉ: с Π΅Π΅ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ставится наш собствСнный React Native SDK.

Π’Π°ΡˆΠ΅ΠΌΡƒ вниманию ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅ΠΌ ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΠ½ΡƒΡŽ ΡΡ‚Π°Ρ‚ΡŒΡŽ, ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π½ΡƒΡŽ всСго Π΄Π²Π° дня Π½Π°Π·Π°Π΄, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ рассказываСтся ΠΏΡ€ΠΎ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ зависимостями Π² Python. ΠŸΡ€ΠΎ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ развития. ΠŸΡ€ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹. И, Ρ‡Ρ‚ΠΎ самоС Ρ†Π΅Π½Π½ΠΎΠ΅ β€” ΠΏΡ€ΠΎ Ρ‚ΠΎ, ΠΊΠ°ΠΊ сообщСство ΠΈΡ… Ρ€Π΅ΡˆΠ°Π΅Ρ‚. Под ΠΊΠ°Ρ‚ΠΎΠΌ Π°Π΄Π°ΠΏΡ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ для Π₯Π°Π±Ρ€Π° ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΠ±ΡΡƒΠ΄ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ‡Π°Π»ΡŒΠ½ΡƒΡŽ Ρ‚Π΅ΠΌΡƒ зависимостСй. И Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для Python.

Окай, рСбята. ΠŸΠΎΡ…ΠΎΠΆΠ΅, ΠΏΡ€ΠΎΡˆΠ»ΠΈ Ρ‚Π΅ Π²Ρ€Π΅ΠΌΠ΅Π½Π°, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ ΠΌΠΎΠ³Π»ΠΈ Ρ€Π°ΡΡΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ Π΄Ρ€ΡƒΠ³Ρƒ, насколько всС ΠΏΠ»ΠΎΡ…ΠΎ с зависимостями Π² Python. БСйчас расскаТу, ΠΏΠΎΡ‡Π΅ΠΌΡƒ.

ΠŸΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΌΡ‹ ΠΏΠΎΡ‡ΠΈΠ½ΠΈΠ»ΠΈ Ρ€Π°Π±ΠΎΡ‚Ρƒ с зависимостями. Если Ρ‚Ρ‹ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΈ создаСшь ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΡˆΡŒ Python Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, Ρ‚ΠΎ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ это дСлаСтся Π»Π΅Π³ΠΊΠΎ ΠΈ Π±Π΅Π· Π±ΠΎΠ»ΠΈ. Π― Π³ΠΎΠ²ΠΎΡ€ΡŽ это, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠΈ Π΄ΠΎΠ»Π³ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ срСдства Python для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с зависимостями были… с ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°ΠΌΠΈ. Π­Ρ‚ΠΎ ΡƒΠΆΠ΅ Π½Π΅ Ρ‚Π°ΠΊ, Π½ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ люди ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡŽΡ‚ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎ Β«ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°Ρ… с зависимостями Ρƒ PythonΒ» ΠΈ Π΄ΡƒΠΌΠ°ΡŽΡ‚, Ρ‡Ρ‚ΠΎ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ помСнялось. ΠŸΠΎΡ€Π° всС Ρ€Π°ΡΡΠΊΠ°Π·Π°Ρ‚ΡŒ.

НСбольшой историчСский экскурс. Π‘ зависимостями Ρƒ Python Π΄Π΅Π»ΠΎ обстояло ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ так…

РассвСт

Python ΡƒΠ²ΠΈΠ΄Π΅Π» свСт Π² Ρ‚Π΅ Π²Ρ€Π΅ΠΌΠ΅Π½Π°, ΠΊΠΎΠ³Π΄Π° Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ зависимости ΠΎΠ·Π½Π°Ρ‡Π°Π»ΠΎ Π΄ΠΎΠ»Π³ΠΎΠ΅ ΠΏΡƒΡ‚Π΅ΡˆΠ΅ΡΡ‚Π²ΠΈΠ΅ Π² кибСрспСйс. Для Π½Π°Ρ‡Π°Π»Π° Π½ΡƒΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π΄ΠΎΠΆΠ΄Π°Ρ‚ΡŒΡΡ освобоТдСния Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π½ΠΎΠΉ Π»ΠΈΠ½ΠΈΠΈ. Π—Π°Ρ‚Π΅ΠΌ ΠΏΠΎΠ·Π²ΠΎΠ½ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€Ρƒ. ΠŸΠΎΠ·Π²ΠΎΠ½ΠΈΡ‚ΡŒ ΠΏΠΎ ΠΌΠΎΠ΄Π΅ΠΌΡƒ, Ρ‡Ρ‚ΠΎ Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€Π½ΠΎ. ПослС боя с SLIP ΠΈΠ»ΠΈ PPP ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π·Π°Π΄Π°Ρ‚ΡŒ вопрос Π² ΠΎΠ΄Π½Ρƒ ΠΈΠ· Π³Ρ€ΡƒΠΏΠΏ, Π·Π½Π°Π΅Ρ‚ Π»ΠΈ ΠΊΡ‚ΠΎ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΉ gopher-сайт, Π³Π΄Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ стоящСй ΠΏΠ΅Ρ€Π΅Π΄ Ρ‚ΠΎΠ±ΠΎΠΉ Π·Π°Π΄Π°Ρ‡ΠΈ. ПослС Ρ‡Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒΡΡ ΠΎΡ‚ ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π° ΠΈ ΠΏΠΎΠ΄ΠΎΠΆΠ΄Π°Ρ‚ΡŒ нСсколько дСсятков часов: Π²Π΄Ρ€ΡƒΠ³ ΠΊΡ‚ΠΎ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ Π΄Π° ΠΎΡ‚Π²Π΅Ρ‚ΠΈΡ‚. Если ΠΏΠΎΠ²Π΅Π·Π»ΠΎ, Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΠΏΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π·Π°ΠΊΠ°Ρ‡ΠΊΡƒ Π½Π° Π½ΠΎΡ‡ΡŒ.

Никакого pip search Ρ‚ΠΎΠ³Π΄Π° Π½Π΅ Π±Ρ‹Π»ΠΎ!

Для Ρ‚ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ Python ΠΊ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΡŽ зависимостями Π±Ρ‹Π» ΡƒΠ΄ΠΈΠ²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΎΠ·ΠΎΡ€Π»ΠΈΠ²Ρ‹ΠΌ. Π”ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° β€˜import’ ΠΈ Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅ΠΌΠ°Ρ систСма Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ позволяла ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ зависимости ΠΎΡ‚ΠΊΡƒΠ΄Π° ΡƒΠ³ΠΎΠ΄Π½ΠΎ.

ВмСстС с вСрсиСй 2.0 Python (ΠΎΠΊΡ‚ΡΠ±Ρ€ΡŒ 2000 Π³ΠΎΠ΄Π°) состоялся Ρ€Π΅Π»ΠΈΠ· Distutils. Π‘ Π΅Π³ΠΎ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ смогли абстрактно ΠΎΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ ΠΈΡ… ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ ΠΈ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ³ΠΎΠ΄Π½Ρ‹Π΅ для распространСния ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ ΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ². И снова, это Π±Ρ‹Π»ΠΎ ΠΎΡ‡Π΅Π½ΡŒ, ΠΎΡ‡Π΅Π½ΡŒ ΠΏΡ€ΠΎΠ·ΠΎΡ€Π»ΠΈΠ²ΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅. Π’ Ρ‚Π΅ Π²Ρ€Π΅ΠΌΠ΅Π½Π° Π½ΠΈ ΠΎ Ρ‡Π΅ΠΌ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠΌ Π½Π΅ Π±Ρ‹Π»ΠΎ ΠΈ Ρ€Π΅Ρ‡ΠΈ.

ΠŸΠ΅Ρ€Π΅ΠΌΠ°Ρ‚Ρ‹Π²Π°Π΅ΠΌ врСмя ΠΊ 2004 Π³ΠΎΠ΄Ρƒ. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ setuptools для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Ρ‚ΠΈΠΏΠΎΠ²Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°ΡŽΡ‚ΡΡ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ open source ΠΏΡ€ΠΈ распространСнии своих ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ Ρ‡Π΅Ρ€Π΅Π· ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚. Π’ 2005 Π±Ρ‹Π»Π° Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° easy_install для автоматичСского опрСдСлСния зависимостСй ΠΈ скачивания ΠΈΡ… Π² Π½ΡƒΠΆΠ½Ρ‹Π΅ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ.

Π’Π΅ΠΌΠ½Ρ‹Π΅ Π²Π΅ΠΊΠ°

К соТалСнию, вмСстС с простыми ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ°ΠΌΠΈ описания зависимостСй, setuptols ΠΏΡ€ΠΈΡ‚Π°Ρ‰ΠΈΠ»ΠΈ с собой Ρ‡ΡƒΠ΄ΠΎΠ²ΠΈΡ‰Π½ΠΎΠ΅ количСство слоТности. Автор посчитал, Ρ‡Ρ‚ΠΎ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° β€˜import’ Π΄ΠΎΠ»ΠΆΠ½Π° Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎ-Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ, ΠΈ установка setuptools ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»Π° Π΅Π΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅. По ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠΉ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²ΠΎΠΉ β€˜import’, вСрсия setuptools ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π»Π° Ρ€Π°Π±ΠΎΡ‚Ρƒ с нСсколькими вСрсиями ΠΎΠ΄Π½ΠΎΠΉ ΠΈ Ρ‚ΠΎΠΉ ΠΆΠ΅ зависимости Π² Ρ€Π°ΠΌΠΊΠ°Ρ… ΠΎΠ΄Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Π’ΠΎΠ³Π΄Π° это казалось Π·Π°ΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΈΠ΄Π΅Π΅ΠΉ. Но врСмя ΠΏΠΎΠΊΠ°Π·Π°Π»ΠΎ, Ρ‡Ρ‚ΠΎ это Π½Π΅ Ρ‚Π°ΠΊ. Π‘ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ³ΠΎ, схоТая идСя возмоТности установки Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… вСрсий Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π½Π° ΠΎΠ΄ΠΈΠ½ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ (Π° Π½Π΅ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ для ΠΎΠ΄Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹) являСтся Π²Π°ΠΆΠ½ΠΎΠΉ ΠΈ Π½ΡƒΠΆΠ½ΠΎΠΉ ΡˆΡ‚ΡƒΠΊΠΎΠΉ.

Π’ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ этому идСологичСскому ΠΎΡ‚Ρ…ΠΎΠ΄Ρƒ ΠΎΡ‚ стандартной сСмантики Python, setuptools ΠΈΠΌΠ΅Π»Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с ΠΌΠ°ΠΉΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠΌ. Π’ΠΎΡ‡Π½Π΅Π΅, с отсутствиСм ΠΌΠ°ΠΉΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ². Она стала ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π½ΠΎΠΉ Ρ‡Π°ΡΡ‚ΡŒΡŽ Python экосистСмы ΠΊΠ°ΠΊ Ρ€Π°Π· Π² Ρ‚ΠΎΡ‚ ΠΌΠΎΠΌΠ΅Π½Ρ‚, ΠΊΠΎΠ³Π΄Π° Π°Π²Ρ‚ΠΎΡ€ Ρ€Π΅ΡˆΠΈΠ» Π·Π°Π½ΡΡ‚ΡŒΡΡ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°ΠΌΠΈ – ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ нСсвязанными с ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ. Π”ΠΎΠ²ΠΎΠ»ΡŒΠ½ΠΎ Π΄ΠΎΠ»Π³ΠΎ Π½ΠΈΠΊΡ‚ΠΎ Π½Π΅ ΠΌΠΎΠ³ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒΡΡ, ΠΊΡ‚ΠΎ ΠΈ ΠΊΠ°ΠΊ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚. ΠšΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ, ΠΊ Ρ‚ΠΎΠΌΡƒ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, с ΠΎΠ΄Π½ΠΎΠΉ стороны Π±Ρ‹Π» ΡƒΠΆΠ΅ Ρ„ΠΎΡ€ΠΊΠ½ΡƒΡ‚, Π° с Π΄Ρ€ΡƒΠ³ΠΎΠΉ стороны, Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… дистрибутивах Β«ΠΎΠΊΠ°ΠΌΠ΅Π½Π΅Π»Π°Β» старая ΠΈ Π³Π»ΡŽΡ‡Π½Π°Ρ вСрсия.

Π‘ 2008 ΠΏΠΎ 2012 Π³ΠΎΠ΄Π° ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ зависимостями Π² Python прСдставляло ΠΈΠ· сСбя Π½Π΅ Π»ΡƒΡ‡ΡˆΠ΅Π΅ Π·Ρ€Π΅Π»ΠΈΡ‰Π΅. ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΈΠΌ Π±Ρ‹Π»ΠΎ ΠΏΠΎ мСньшСй ΠΌΠ΅Ρ€Π΅ Π±ΠΎΠ»Π΅Π·Π½Π΅Π½Π½ΠΎ. Π‘Ρ‹Π»ΠΎ нСпонятно, ΠΊΠ°ΠΊΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΈ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ, Π² ΠΊΠ°ΠΊΠΈΠ΅ стоит ΠΈΠ½Π²Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ своС Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΈ ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ. Π ΡƒΡ‡Π½ΠΎΠ΅ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ зависимостями Π±Ρ‹Π»ΠΎ ΡƒΡ‚ΠΎΠΌΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ, Ρ‚ΠΎΠ³Π΄Π° ΠΊΠ°ΠΊ автоматизация Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π»Π° мноТСство слабо Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… ΠΎΠ±Ρ…ΠΎΠ΄Π½Ρ‹Ρ… ΠΏΡƒΡ‚Π΅ΠΉ.

Π­Ρ‚ΠΎ Π΅Ρ‰Π΅ Π½Π΅ говоря ΠΎ многочислСнных Π΄Ρ‹Ρ€Π°Ρ… бСзопасности Π² Ρ€Π°Π·Π½Ρ‹Ρ… частях Ρ‚ΡƒΠ»Ρ‡Π΅ΠΉΠ½Π°. НС Π±Ρ‹Π»ΠΎ возмоТности Π·Π°ΠΏΠ°ΠΊΠΎΠ²Π°Ρ‚ΡŒ ΠΈ Ρ€Π°ΡΠΏΡ€ΠΎΡΡ‚Ρ€Π°Π½ΠΈΡ‚ΡŒ Python Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ с Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΌ ΠΊΠΎΠ΄ΠΎΠΌ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π½Π΅ Π±Ρ‹Π»ΠΎ нСобходимости ΠΈΠΌΠ΅Ρ‚ΡŒ Π½Π° своСм ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ настроСнный компилятор.

Π’ Ρ‚ΠΎ ΠΆΠ΅ самоС врСмя всС Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ ΠΏΠΎΠΏΡƒΠ»ΡΡ€Π½ΠΎΡΡ‚ΡŒ стали Π·Π°Π²ΠΎΠ΅Π²Ρ‹Π²Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ языки ΠΈ экосистСмы, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ зависимостями Π±Ρ‹Π»ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ Π±ΠΎΠ»Π΅Π΅-ΠΌΠ΅Π½Π΅Π΅ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ с самого Π½Π°Ρ‡Π°Π»Π° ΠΈ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠΌΠ΅Π»ΠΈ Π»ΡƒΡ‡ΡˆΡƒΡŽ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ распространСния Π±ΠΈΠ½Π°Ρ€Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ². Π­Ρ‚ΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π²Ρ‹ΡƒΡ‡ΠΈΠ»ΠΈ свой ΡƒΡ€ΠΎΠΊ Π½Π° ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ… Python ΠΈ Perl.

И, Π½Π°ΠΊΠΎΠ½Π΅Ρ†, Python Package Index. Π‘Π°ΠΉΡ‚, хранящий ΠΈ Ρ€Π°ΡΠΏΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡŽΡ‰ΠΈΠΉ всС open source Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, созданныС сообщСством Python. НС Π±ΠΎΠ»Π΅Π΅ Ρ‡Π΅ΠΌ proof-of-concept, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±Ρ‹Π» Π·Π°ΠΏΡƒΡ‰Π΅Π½ слишком Ρ€Π°Π½ΠΎ, Π½Π΅ ΠΈΠΌΠ΅Π» Π½ΠΈΠΊΠ°ΠΊΠΈΡ… рСсурсов для развития своСй инфраструктуры ΠΈ слишком часто становился ΠΎΡ„Ρ„Π»Π°ΠΉΠ½.

ВсС ΡΠΊΠ»Π°Π΄Ρ‹Π²Π°Π»ΠΎΡΡŒ Π½Π΅ Π»ΡƒΡ‡ΡˆΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ для Python.

Π’ΠΎΡ‚ ΠΌΡ‹ ΠΈ подошли ΠΊ Ρ‚ΠΎΠΌΡƒ ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρƒ, ΠΊΠΎΠ³Π΄Π° говорят, Ρ‡Ρ‚ΠΎ β€œΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ зависимостями Π² Python β€” #$@#@@!”. Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ Ρ‚Π°ΠΊΠΈΡ… высказываний β€” ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠ°Ρ информация, ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰Π°Ρ этот ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. ΠœΠ½ΠΎΠΆΠ΅ΡΡ‚Π²ΠΎ блогпостов с ΠΆΠ°Π»ΠΎΠ±Π°ΠΌΠΈ, высоко Ρ€Π°Π½ΠΆΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ поисковыми систСмами ΠΏΠΎ запросу β€œΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹β€. Π’Π΅, ΠΊΡ‚ΠΎ использовал Python Π² это врСмя ΠΈ ΠΏΠ΅Ρ€Π΅ΡˆΠ΅Π» Π½Π° использованиС Π΄Ρ€ΡƒΠ³ΠΈΡ… языков, часто Π²ΠΎΡ€Ρ‡Π°Ρ‚ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ уТасно Π±Ρ‹Π»ΠΎ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ зависимостями, насколько сломана Π±Ρ‹Π»Π° экосистСма ΠΈ ΠΊΠ°ΠΊ часто Π»Π΅ΠΆΠ°Π» PyPI. Π₯ΡƒΠΆΠ΅ всСго, Π² сСти Π΅ΡΡ‚ΡŒ мноТСство совСтов ΠΏΠΎ ΠΎΠ±Ρ…ΠΎΠ΄Π½Ρ‹ΠΌ путям Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡƒΠΆΠ΅ Π΄Π°Π²Π½ΠΎ Π½Π΅ Π½ΡƒΠΆΠ½Ρ‹, Π½ΠΎ всС Π΅Ρ‰Π΅ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ поисковыми систСмами Π² Ρ‚ΠΎΠΏΠ΅ Π²Ρ‹Π΄Π°Ρ‡ΠΈ. Π‘Π»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ‚Π°ΠΊΠΈΠΌ совСтам Π»ΠΎΠΌΠ°Π΅Ρ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ Ρ€Π°Π±ΠΎΡ‡Π΅Π΅ ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ усугубляСт ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΡŽ.

Π’ΠΎΡΡΡ‚Π°Π²ΡˆΠΈΠ΅ ΠΈΠ· ΠΏΠ΅ΠΏΠ»Π°

И посрСдинС этого Π²Π΅Π»ΠΈΠΊΠΎΠ³ΠΎ ΠΏΠΎΠ»ΠΎΠΌΠ° ряд Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² гСроичСски, ΠΌΠΎΠ»Ρ‡Π°, ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ всС Ρ‡ΠΈΠ½ΠΈΠ»ΠΈ, ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡƒ Π²Π³Ρ€Ρ‹Π·Π°ΡΡΡŒ Π² Π±Π°Π³Ρ€Π΅ΠΏΠΎΡ€Ρ‚Ρ‹. Π‘Ρ‚Π°Ρ€Ρ‚ΠΎΠ²Π°Π» ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ β€˜pip’, многочислСнныС ΠΌΠ΅ΠΉΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΡƒΠ±Ρ€Π°Π»ΠΈ Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ слоТности, Ρ‡Ρ‚ΠΎ принСсла β€˜easy_install’, ΠΈ исправили ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π΅Π΅ нСдостатки. Donald Stufft взялся сразу Π·Π° Pip ΠΈ PyPI, исправив старыС уязвимости ΠΈ сдСлав систСму Π±ΠΎΠ»Π΅Π΅ устойчивой. Daniel Holth написал PEP для Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° β€˜wheel’, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт Ρ€Π°ΡΠΏΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡ‚ΡŒ Π±ΠΈΠ½Π°Ρ€Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ вмСстС с Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°ΠΌΠΈ. Π’ΠΎ Π΅ΡΡ‚ΡŒ, Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ словами, позволяСт ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌΠΈ Π±Π΅Π· настроСнного компилятора β€œC” ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС ΠΏΠΎΡ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ этот компилятор для сборки.

Π’ 2013 Π³ΠΎΠ΄Ρƒ setuptools снова объСдинился со своим Ρ„ΠΎΡ€ΠΊΠΎΠΌ distribute, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»ΠΎ Π²Π΅Π½Π΄ΠΎΡ€Π°ΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСм ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ систСмы Ρ€Π°Π±ΠΎΡ‚Ρ‹ с зависимостями ΠΈ Π΄Π°Ρ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ соврСмСнныС инструмСнты. ΠœΠΎΠ΄ΡƒΠ»ΡŒ β€œensurepip” Π±Ρ‹Π» Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ Π² Python Core Π΄ΠΈΡΡ‚Ρ€ΠΈΠ±ΡŒΡŽΡ†ΠΈΡŽ для вСрсий 2.7 ΠΈ 3.3, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ с Π±ΠΎΠ»Π΅Π΅-ΠΌΠ΅Π½Π΅Π΅ соврСмСнной вСрсиСй Python ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ сСбС Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰Π΅Π΅ ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с зависимостями.

Π― Π½Π΅ Π±ΡƒΠ΄Ρƒ Ρ€Π°ΡΡΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎ соврСмСнныС ΠΏΡ€ΠΈΠ΅ΠΌΡ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с зависимостями. Π­Ρ‚ΠΎΠΌΡƒ посвящСн ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ вСбсайт. Но я ΠΏΠΎΠΊΠ°ΠΆΡƒ, насколько это сСйчас просто. Для любой соврСмСнной вСрсии Python, Ссли Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰Π΅Π΅ ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ Π±Π΅Π· админских ΠΏΡ€Π°Π², всС Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ это:

Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΡΠΎΠ±ΡΡ‚Π²Π΅Π½Π½ΡƒΡŽ «пСсочницу» virtualenv:

Π­Ρ‚ΠΎ всС. МоТно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ pip, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ Π»ΡŽΠ±Ρ‹Π΅ зависимостями. Для установки Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° Π²Π°ΠΌ Π΄Π°ΠΆΠ΅ Π½Π΅ потрСбуСтся компилятор! Π‘ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ³ΠΎ, эти заклинания Π½Π΅ зависят ΠΎΡ‚ вСрсии Python: ΠΎΠ½ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Python 2, Python 3, PyPy ΠΈ Π΄Π°ΠΆΠ΅ Jython (ΠΏΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‡ΠΈΠΊΠ°: ΡΡŽΡ€ΠΏΡ€ΠΈΠ·, Π΄Π°?).

На самом Π΄Π΅Π»Π΅, часто Π²Π°ΠΌ Π΄Π°ΠΆΠ΅ Π½Π΅ потрСбуСтся шаг с β€˜ensurepip’, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ β€˜pip’ Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠΆΠ΅ установлСн ΠΈ настроСн! Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, Π»ΡƒΡ‡ΡˆΠ΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ это простоС Π·Π°ΠΊΠ»ΠΈΠ½Π°Π½ΠΈΠ΅, Π²Ρ€Π΅Π΄Π° ΠΎΠ½ΠΎ Π½Π΅ нанСсСт.

Π‘ΠΎΠ»Π΅Π΅ ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π½Π°Π΄ зависимостями Ρ‚ΠΎΠΆΠ΅ ΡƒΠΏΡ€ΠΎΡΡ‚ΠΈΠ»ΠΈΡΡŒ. НуТСн компилятор Β«CΒ»? Π‘ΠΎΠ·Π΄Π°Ρ‚Π΅Π»ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСм ΠΏΠ»ΠΎΡ‚Π½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΈ с сообщСством, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ настройку компилятора максимально Π±Π΅Π·Π±ΠΎΠ»Π΅Π·Π½Π΅Π½Π½ΠΎΠΉ:

Π›Π°Π΄Π½ΠΎ-Π»Π°Π΄Π½ΠΎ, послСдний шаг Π½Π΅ Ρ‚Π°ΠΊΠΎΠΉ ΡƒΠΆ Π±Π΅Π·Π±ΠΎΠ»Π΅Π·Π½Π΅Π½Π½Ρ‹ΠΉ. Но компилятор хотя Π±Ρ‹ Π΅ΡΡ‚ΡŒ, бСсплатСн ΠΈ устанавливаСтся простым скачиваниСм с сайта! Π₯ΠΎΡ‚ΠΈΡ‚Π΅ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ Ρ‡Ρ‚ΠΎ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ Π½Π° PyPI? Для Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² это Π±ΡƒΠ΄Π΅Ρ‚ Π²ΠΎΡ‚ Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ просто:

Π₯ΠΎΡ‚ΠΈΡ‚Π΅ ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ Π±ΠΈΠ½Π°Ρ€Π½Ρ‹Π΅ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ wheels? И для этого Π΅ΡΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ (docker container, разумССтся).

Π§Ρ‚ΠΎ Π²Π°ΠΆΠ½ΠΎ, ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ²Π΅Ρ€Π΅Π½Π½ΠΎ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ ΠΎ высоком ΠΎΠ½Π»Π°ΠΉΠ½Π΅ PyPI. А Π΅Ρ‰Π΅ Ρƒ Π½ΠΈΡ… со дня Π½Π° дСнь Π±ΡƒΠ΄Π΅Ρ‚ Π½ΠΎΠ²Ρ‹ΠΉ, ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΏΠ΅Ρ€Π΅Π΄Π΅Π»Π°Π½Π½Ρ‹ΠΉ сайт (ΠΏΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‡ΠΈΠΊΠ°: Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ ΡΡŽΡ€ΠΏΡ€ΠΈΠ·).

Π― ΠΌΠ½ΠΎΠ³ΠΎ занимаюсь Python Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ, ΠΈ ΠΌΠΎΠ³Ρƒ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ самая ΡΠ΅Ρ€ΡŒΠ΅Π·Π½Π°Ρ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°, с ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ я столкнулся Π·Π° послСдний Π³ΠΎΠ΄, Ρ€Π΅ΡˆΠΈΠ»Π°ΡΡŒ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ΠΌ Π·Π°ΠΊΠ΅ΡˆΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ². Π― ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽ соврСмСнный Ρ‚ΡƒΠ»Ρ‡Π΅ΠΉΠ½ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ дСнь, ΠΈ ΠΎΠ½ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚!

Π Π°Π±ΠΎΡ‚Π°, которая Π½Π°ΠΌ прСдстоит

ВСкущая ситуация ΡƒΠΆΠ΅ Π½Π΅ΠΏΠ»ΠΎΡ…Π°. Но Π΅Π΅ нСльзя Π½Π°Π·Π²Π°Ρ‚ΡŒ Β«Π·Π°ΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉΒ». Π§Ρ‚ΠΎ Π±Ρ‹ я Π΅Ρ‰Π΅ Ρ…ΠΎΡ‚Π΅Π» ΠΎΡ‚ нашСй экосистСмы:

Π§Ρ‚ΠΎ я Ρ…ΠΎΡ‚Π΅Π» ΡΠΊΠ°Π·Π°Ρ‚ΡŒ этим Π»ΠΎΠ½Π³Ρ€ΠΈΠ΄ΠΎΠΌ. Битуация с зависимостями Π² Python Π΄Π°Π»Π΅ΠΊΠ° ΠΎΡ‚ ΠΈΠ΄Π΅Π°Π»Π°, Π½ΠΎ ΡƒΠΆΠ΅ нСльзя Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρƒ Π΄Ρ€ΡƒΠ³ΠΈΡ… языков программирования всС Β«Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ Π»ΡƒΡ‡ΡˆΠ΅Β». Для Go ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡŽΡ‚ΡΡ обсуТдСния Ρ€Π°Π·Π½Ρ‹Ρ… Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² управлСния зависимостСй ΠΈ ситуация с β€œCGo” Π΄Π°Π»Π΅ΠΊΠ° ΠΎΡ‚ ΠΈΠ΄Π΅Π°Π»Π°. Π£ Node собствСнныС горячо обсуТдаСмыС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с ΠΊΡƒΠ»ΡŒΡ‚ΡƒΡ€ΠΎΠΉ управлСния зависимостями ΠΈ Ρ‚ΡƒΠ»Ρ‡Π΅ΠΉΠ½ΠΎΠΌ. Hackage ΠΊΡ€ΡƒΡ‚ ΠΈ всС Ρ‚Π°ΠΊΠΎΠ΅, Π½ΠΎ врСмя сборки достигаСт поистинС астрономичСских Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ. Как ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ, Ρƒ Rust с Cargo всС ΠΏΠΎΡ‡Ρ‚ΠΈ идСально – Π½ΠΎ вСдь Π½ΠΈΠΊΡ‚ΠΎ ΠΈΠ· Ρ‡ΠΈΡ‚Π°ΡŽΡ‰ΠΈΡ… эти строки Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Rust?

НС Ρ…ΠΎΡ‡Ρƒ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρ€Π°Π±ΠΎΡ‚Π° с зависимостями Π² этих языках ΠΊΠ°ΠΊ-Ρ‚ΠΎ особо ΠΏΠ»ΠΎΡ…Π°. На самом Π΄Π΅Π»Π΅ Ρƒ Π½ΠΈΡ… всС ΠΎΡ‡Π΅Π½ΡŒ Π½Π΅ΠΏΠ»ΠΎΡ…ΠΎ, особСнно Ссли ΡΡ€Π°Π²Π½ΠΈΠ²Π°Ρ‚ΡŒ это со срСднСй Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€ΠΎΠΉ ΠΏΠΎ Π±ΠΎΠ»ΡŒΠ½ΠΈΡ†Π΅ ΠΏΠ°Ρ€Ρƒ Π»Π΅Ρ‚ Π½Π°Π·Π°Π΄; Π½Π°Π±Π»ΡŽΠ΄Π°Π΅Ρ‚ΡΡ постоянный прогрСсс ΠΈ Π²ΠΈΠ΄ΠΈΠΌΡ‹Π΅ для ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ.

По ΠΌΠΎΠ΅ΠΌΡƒ мнСнию, любоС ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π² ΠΊΠ°ΠΊΠΎΠΌ-Ρ‚ΠΎ языкС Ρ€Π°Π±ΠΎΡ‚Π° с зависимостями Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ Π»ΡƒΡ‡ΡˆΠ΅ Ρ‡Π΅ΠΌ Π² Python, скорСС всСго устарСло. БСйчас зависимостями Π² Python ΡƒΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ, ΠΈ это Π½Π΅ больно.. ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π΅Ρ‰Ρ‘ Π»ΡƒΡ‡ΡˆΠ΅, Π½ΠΎ Π½Π°Π΄ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΠ΅ΠΌ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ мноТСство программистов, ΠΈ всС основныС Π±Π°Ρ€ΡŒΠ΅Ρ€Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ прСпятствовали Π΄Π°Π»ΡŒΠ½Π΅ΠΉΡˆΠ΅ΠΌΡƒ Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΡŽ, ΠΎΠ½ΠΈ ΡƒΠΆΠ΅ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ ΡƒΠ±Ρ€Π°Π»ΠΈ.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *