Пакет — це каталог (папка), який може містити інші каталоги або модулі. Модуль — це файл із вихідним кодом, який має розширення .py. Пакети використовуються для формування простору імен, що дозволяє працювати з модулями через вказування рівня вкладеності (за допомогою оператора .). Для імпортування пакетів використовується той самий синтаксис, що й для роботи з модулями.
Припустимо, що ми розробляємо гру. Одна з можливих організацій наших пакетів та модулів може бути наступною:

Примітка: Каталог повинен містити файл з ім’ям __init__.py, щоб Python міг розглядати цей каталог як пакет. Даний файл можна залишити порожнім, але зазвичай туди поміщають код ініціалізації цього пакета.
Імпорт модуля із пакета в Python
В Python ми можемо імпортувати модулі з пакетів, використовуючи крапку .. Наприклад, якщо ми хочемо імпортувати модуль start із вищенаведеного пакета game, нам потрібно написати наступне:
|
1 |
import game.Level.start |
Тепер, якщо цей модуль містить функцію з ім’ям select_difficulty(), то для її використання слід вказати повне посилання:
|
1 |
game.Level.start.select_difficulty(2) |
from … import
Якщо вищенаведене посилання на функцію здається довгим, то ми можемо імпортувати модуль наступним чином:
|
1 |
from game.Level import start |
І потім викликати функцію буде простіше:
|
1 |
start.select_difficulty(2) |
Імпорт лише необхідного функціоналу з пакета
Інший спосіб імпортувати тільки необхідний функціонал (функцію, клас або змінну) із модуля всередині пакета:
|
1 |
from game.Level.start import select_difficulty |
Тепер ми можемо безпосередньо викликати цю функцію:
|
1 |
select_difficulty(2) |
Хоча цей спосіб виглядає простіше, але його не рекомендується використовувати. Вказування повного простору імен дозволяє уникнути плутанини та запобігає конфлікту імен.
Під час імпорту пакетів Python переглядає список каталогів, визначених в sys.path.

(23 оцінок, середня: 4,87 з 5)