🐍 Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Python Package: ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠ΅ объяснСниС ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ использования πŸ“¦

Python-ΠΏΠ°ΠΊΠ΅Ρ‚ - это коллСкция ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ ΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ², которая позволяСт ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ для ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ использования ΠΈ управлСния зависимостями Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅.

Python-ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„Π°ΠΉΠ»Π° __init__.py, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€Π΅Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ с ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠΌ Π² ΠΌΠΎΠ΄ΡƒΠ»ΡŒ.

Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€. Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΠΏΠ°ΠΊΠ΅Ρ‚ с Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ my_package содСрТащий Π΄Π²Π° модуля:

my_package/
   __init__.py
   module1.py
   module2.py

Π’ __init__.py Ρ„Π°ΠΉΠ»Π΅ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΡΠΊΡΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ, Π° Π² ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ… Ρ„Π°ΠΉΠ»Π°Ρ… (module1.py ΠΈ module2.py) ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ классы для использования Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… частях нашСго ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.

ПослС создания ΠΏΠ°ΠΊΠ΅Ρ‚Π°, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π΅Π³ΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ pip ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π² Π½Π°ΡˆΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ…:

pip install my_package

from my_package import module1, module2

module1.my_function()
module2.MyClass().my_method()

Π”Π΅Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΡ‚Π²Π΅Ρ‚

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Python ΠΏΠ°ΠΊΠ΅Ρ‚?

Python ΠΏΠ°ΠΊΠ΅Ρ‚ - это структура, которая содСрТит ΠΌΠΎΠ΄ΡƒΠ»ΠΈ (Ρ„Π°ΠΉΠ»Ρ‹ с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ .py) ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹. Он ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ управлСния ΠΊΠΎΠ΄ΠΎΠΌ Python, позволяя Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ связанныС ΠΌΠΎΠ΄ΡƒΠ»ΠΈ вмСстС.

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

Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° ΠΏΠ°ΠΊΠ΅Ρ‚Π°:

ΠŸΠ°ΠΊΠ΅Ρ‚ ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ структуру:

my_package/                 # Главная ΠΏΠ°ΠΏΠΊΠ° ΠΏΠ°ΠΊΠ΅Ρ‚Π°
    β”œβ”€β”€ __init__.py           # Π€Π°ΠΉΠ» ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚Π°
    β”œβ”€β”€ module1.py            # ΠœΠΎΠ΄ΡƒΠ»ΡŒ 1
    β”œβ”€β”€ module2.py            # ΠœΠΎΠ΄ΡƒΠ»ΡŒ 2
    └── subpackage/           # ΠŸΠΎΠ΄ΠΏΠ°ΠΊΠ΅Ρ‚
        β”œβ”€β”€ __init__.py       # Π€Π°ΠΉΠ» ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΠΎΠ΄ΠΏΠ°ΠΊΠ΅Ρ‚Π°
        β”œβ”€β”€ module3.py        # ΠœΠΎΠ΄ΡƒΠ»ΡŒ 3
        └── module4.py        # ΠœΠΎΠ΄ΡƒΠ»ΡŒ 4

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ каТдая ΠΏΠ°ΠΏΠΊΠ° содСрТит Ρ„Π°ΠΉΠ» с ΠΈΠΌΠ΅Π½Π΅ΠΌ "__init__.py". Π­Ρ‚ΠΎΡ‚ Ρ„Π°ΠΉΠ» - Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ, Π½ΠΎ Π΅Π³ΠΎ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΏΠ°ΠΏΠΊΠ° являСтся ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠΌ ΠΈΠ»ΠΈ ΠΏΠΎΠ΄ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠΌ.

Π˜ΠΌΠΏΠΎΡ€Ρ‚ ΠΏΠ°ΠΊΠ΅Ρ‚Π° ΠΈ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ:

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ°ΠΊΠ΅Ρ‚ ΠΈΠ»ΠΈ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΈΠ· ΠΏΠ°ΠΊΠ΅Ρ‚Π°, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово "import". НапримСр:

import my_package.module1      # Π˜ΠΌΠΏΠΎΡ€Ρ‚ модуля 1 ΠΈΠ· ΠΏΠ°ΠΊΠ΅Ρ‚Π°
import my_package.subpackage.module3   # Π˜ΠΌΠΏΠΎΡ€Ρ‚ модуля 3 ΠΈΠ· ΠΏΠΎΠ΄ΠΏΠ°ΠΊΠ΅Ρ‚Π°

ПослС ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, классы ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΈΠ· ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ ΠΏΠ°ΠΊΠ΅Ρ‚Π° Π² своСм ΠΊΠΎΠ΄Π΅.

ИспользованиС ΠΊΠΎΠ΄Π° ΠΈΠ· ΠΏΠ°ΠΊΠ΅Ρ‚Π°:

ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρƒ вас Π΅ΡΡ‚ΡŒ функция "hello()" Π² ΠΌΠΎΠ΄ΡƒΠ»Π΅ "module1", которая находится Π² ΠΏΠ°ΠΊΠ΅Ρ‚Π΅ "my_package". Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ эту Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

import my_package.module1

my_package.module1.hello()   # Π’Ρ‹Π·ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ hello()

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ классы ΠΈΠ· ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ ΠΏΠ°ΠΊΠ΅Ρ‚Π° Π² своСм ΠΊΠΎΠ΄Π΅.

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ своСго ΠΏΠ°ΠΊΠ΅Ρ‚Π°:

Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ свой собствСнный ΠΏΠ°ΠΊΠ΅Ρ‚ Π² Python. Для этого Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ шаги:

  1. Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ Π½ΠΎΠ²ΡƒΡŽ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ для вашСго ΠΏΠ°ΠΊΠ΅Ρ‚Π°.
  2. Π’Π½ΡƒΡ‚Ρ€ΠΈ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ создайтС Ρ„Π°ΠΉΠ» "__init__.py".
  3. Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ свои ΠΌΠΎΠ΄ΡƒΠ»ΠΈ Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚Π°.
  4. Π˜ΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, классы ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΈΠ· своих ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ Π² своСм ΠΊΠΎΠ΄Π΅, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π²Ρ‹ΡˆΠ΅.

Благодаря ΠΏΠ°ΠΊΠ΅Ρ‚Π°ΠΌ Π² Python Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ эффСктивно ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ ΠΈ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ своим ΠΊΠΎΠ΄ΠΎΠΌ, дСлая Π΅Π³ΠΎ Π±ΠΎΠ»Π΅Π΅ Ρ‡ΠΈΡ‚Π°Π±Π΅Π»ΡŒΠ½Ρ‹ΠΌ ΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΌ.

Π’ΠΈΠ΄Π΅ΠΎ ΠΏΠΎ Ρ‚Π΅ΠΌΠ΅

ΠŸΠ°ΠΊΠ΅Ρ‚Ρ‹ Π² Python. Π€Π°ΠΉΠ» __init__, пСрСмСнная __all__

#50. ΠŸΠ°ΠΊΠ΅Ρ‚Ρ‹ (package) Π² Python. Π’Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ | Python для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…

How to Build a Complete Python Package Step-by-Step

ΠŸΠΎΡ…ΠΎΠΆΠΈΠ΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ:

πŸ” Как ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ условиС Π² Python: ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠ΅ руководство с ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ

Π§Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ with Π² Python? 🐍

🐍 Π“Π΄Π΅ Π½Π°ΠΉΡ‚ΠΈ ΠŸΠΈΡ‚ΠΎΠ½ Π² Linux: подробная инструкция для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…

🐍 Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Python Package: ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠ΅ объяснСниС ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ использования πŸ“¦

🐍 Как ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΏΠΈΡ‚ΠΎΠ½ Π² Π²ΠΈΠ·ΡƒΠ°Π» студио ΠΊΠΎΠ΄: пошаговая инструкция ΠΈ совСты

πŸ”– Π›Π΅Π³ΠΊΠΈΠΉ способ оформлСния Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π² Python: ΠΊΠ°ΠΊ ΠΎΡ„ΠΎΡ€ΠΌΠ»ΡΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅

β“ΠšΠ°ΠΊ Π½Π°ΠΉΡ‚ΠΈ ΡƒΠ³ΠΎΠ» ΠΌΠ΅ΠΆΠ΄Ρƒ Π²Π΅ΠΊΡ‚ΠΎΡ€Π°ΠΌΠΈ Π² Python?πŸ”