Python - Пакеты: Ваш шлюз к повторному использованию и организации кода

Привет, стремящиеся к знаниям программисты Python! Сегодня мы отправляемся в захватывающее путешествие в мир Python-пакетов. Как ваш дружелюбный сосед-преподаватель информатики, я рад вести вас через этот важный концепт, который поднимет ваши навыки программирования на новый уровень. Так что принесите виртуальные рюкзаки и погружайтесь вместе с нами!

Python - Packages

Что такое Python-пакеты?

Прежде чем начать создавать свои собственные пакеты, давайте понимем, что такое они и почему они так важны.

Представьте себе, что вы строите огромную конструкцию из LEGO. Вместо того, чтобы LEGO-кости были разбросаны по всему дому, не было бы лучше организовать их в отдельные коробки по назначению? Вот что и делают Python-пакеты с вашим кодом!

Python-пакет — это способ организовать связанные модули в иерархию каталогов. Это позволяет вам группировать связанную функциональность вместе, делая ваш код более организованным, повторно используемым и легко поддерживаемым.

Создание Python-пакета

Теперь, покроем рукава и создадим свой собственный Python-пакет. Начнем с простого примера, чтобы освоиться.

Шаг 1: Создание каталога для пакета

Сначала нам нужно создать каталог для нашего пакета. Назовем его my_math_package.

my_math_package/

Шаг 2: Добавление файла init.py

Внутри каталога my_math_package создайте пустой файл с именем __init__.py. Этот файл сообщает Python, что каталог должен рассматриваться как пакет.

my_math_package/
__init__.py

Шаг 3: Создание файлов модулей

Теперь добавим некоторые модули к нашему пакету. Создадим два простых модуля: basic_operations.py и advanced_operations.py.

my_math_package/
__init__.py
basic_operations.py
advanced_operations.py

Шаг 4: Добавление кода в модули

Добавим некоторые простые функции к нашим модулям.

В basic_operations.py:

def add(a, b):
return a + b

def subtract(a, b):
return a - b

В advanced_operations.py:

def power(base, exponent):
return base ** exponent

def factorial(n):
if n == 0 or n == 1:
return 1
else:
return n * factorial(n-1)

Шаг 5: Использование пакета

Теперь, когда мы создали наш пакет, давайте узнаем, как мы можем использовать его в нашем коде Python.

# Импортирование конкретных функций
from my_math_package.basic_operations import add, subtract
from my_math_package.advanced_operations import power, factorial

# Использование импортированных функций
print(add(5, 3))  # Вывод: 8
print(subtract(10, 4))  # Вывод: 6
print(power(2, 3))  # Вывод: 8
print(factorial(5))  # Вывод: 120

Ни что себе! Мы только что создали и использовали наш собственный Python-пакет!

Определение списка пакетов

При работе над более крупными проектами вам может понадобиться использовать несколько пакетов. Хорошей практикой является отслеживание всех пакетов, от которых зависит ваш проект. Вот здесь приходит на помощь список пакетов.

Список пакетов обычно хранится в файле под названием requirements.txt. Этот файл содержит все пакеты и их версии, необходимые для корректной работы вашего проекта.

Вот пример того, как может выглядеть файл requirements.txt:

numpy==1.21.0
pandas==1.3.0
matplotlib==3.4.2

Каждая строка указывает имя пакета и его версию. Двойное равно (==) указывает, что мы хотим именно эту версию.

Установка пакетов

Теперь, когда мы знаем, как указывать необходимые пакеты, давайте научимся их устанавливать. Python предоставляет мощный инструмент под названием pip для установки пакетов.

Установка одного пакета

Чтобы установить один пакет, вы можете использовать следующую команду в вашем терминале или командной строке:

pip install package_name

Например, чтобы установить NumPy:

pip install numpy

Установка из файла requirements.txt

Чтобы установить все пакеты, перечисленные в вашем файле requirements.txt, используйте:

pip install -r requirements.txt

Эта команда сообщает pip прочитать файл requirements.txt и установить все перечисленные там пакеты.

Виртуальные окружения

Вот совет профи: при работе над различными проектами лучше использовать виртуальные окружения. Виртуальное окружение — это как отдельная площадка для каждого из ваших проектов, которая ограничивает их зависимости друг от друга.

Чтобы создать виртуальное окружение:

python -m venv myenv

Чтобы активировать его:

  • На Windows: myenv\Scripts\activate
  • На macOS и Linux: source myenv/bin/activate

После активации любые пакеты, которые вы установите, будут специфичны для этого окружения, держа ваши проекты в порядке!

Заключение

Поздравляем! Вы только что сделали большой шаг в вашем путешествии по Python, изучив пакеты. От создания своих собственных пакетов до их установки и управления, у вас теперь есть инструменты, чтобы организовывать ваш код как профессионал.

Помните, пакеты — это как полки в вашей библиотеке кода. Они помогают вам держать все в порядке, делая легче находить то, что вам нужно, и делиться своим кодом с другими. Когда вы продолжите свое путешествие по Python, вы обнаружите множество других захватывающих пакетов, которые добавят мощную функциональность к вашим проектам.

Успехов в практике, оставайтесь любознательными и счастливого кодирования!

Метод Описание
pip install package_name Устанавливает один пакет
pip install -r requirements.txt Устанавливает пакеты, перечисленные в requirements.txt
python -m venv myenv Создает виртуальное окружение
myenv\Scripts\activate (Windows) Активирует виртуальное окружение на Windows
source myenv/bin/activate (macOS/Linux) Активирует виртуальное окружение на macOS/Linux

Credits: Image by storyset