Уроки технологии
Технология Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Back to homepage

Управление проектами в Python

Для управления проектами требуется виртуальная среда, пакеты, которые помогут вам ускорить разработку, и стратегия их обслуживания. Цели обучения

В этом модуле вы узнаете, как выполнять следующие задачи:

Создание проекта Python.
Разработка и запуск кода в режиме изоляции на компьютере.
Использование библиотек, написанных другими разработчиками.
Восстановление проекта из списка зависимостей.

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

При выполнении этого упражнения вы узнаете, как с помощью виртуальных сред избежать влияния на глобально установленные пакеты или другие программы, запущенные на компьютере.

Создание виртуальной среды с помощью venv.

  1. Создайте каталога виртуальной среды ```env``.

python3 -m venv env

  1. Активируйте виртуальную среду используя Bash:
 # Windows
 source env/Scripts/activate

 # Linux, WSL or macOS
 source env/bin/activate

Теперь в терминале отображается (env). Это означает, что вы активировали виртуальную среду и изолированы от остальной части вашего компьютера.

Установка библиотеки

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

  1. Проверьте библиотеки, установленные в вашей среде: pip freeze Вы не должны получить ответ. Теперь давайте посмотрим, как изменятся выходные данные pip freeze при добавлении библиотеки (пакета).
  2. Установите библиотеку расширения стандартного модуля даты и времени python-dateutil:
pip install python-dateutil

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

Деактивация виртуальной среды

Выход из (deactivate) виртуальной среды.

deactivate

Работа с файлами проекта

Как распространить этот проект на другие компьютеры для совместной работы и как управлять зависимостями (обновить или удалить не используемые) с течением времени.

Заморозка: создание файла проекта

Вы узнали, как использовать команду pip freeze для перечисления пакетов, установленных в виртуальной среде. Однако эту команду можно использовать и для других целей.

Представьте, что вы хотите сотрудничать в проекте с другими разработчиками. Хороший способ совместной работы — это, например, использование GitHub. Вы не хотите регистрировать все имеющиеся у вас файлы, а только код приложения и список пакетов, от которых зависит работа программы. Зачем регистрировать только список пакетов, а не сами пакеты? Список занимает гораздо меньше места, чем проверка пакетов.

Предоставление общего доступа к проекту

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

Запистите pip freeze > requirements.txt. Эта команда создает файл requirements.txt со всеми пакетами, которые нужны программе. Создайте файл .gitignore и проверьте код приложения и файл requirements.txt. Зарегистрируйте код на GitHub.

Использование проекта

Чтобы использовать проект в качестве участника (коллеги по разработке), выполните следующие действия.

Получите проект из GitHub.
Создайте виртуальную среду и перейдите в нее.
Восстановите проект с помощью pip install -r requirements.txt. Он найдет файл requirements.txt, а затем получит и установит пакеты, перечисленные для этого файла.
Запустите приложение.

Управление зависимостями

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

Ниже приведены основные аргументы в пользу обновления пакетов.

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

Чтобы обеспечить актуальность пакетов, можно использовать один из следующих подходов.

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

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

Важно!
Убедитесь, что новая версия совместима с другими зависимостями, которые вы можете использовать.

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

pip install python-dateutil===1.4

Существует множество способов узнать, какие версии доступны. Один из них — указать версию, которой точно не существует.

Другой способ — вызвать pip freeze. В выходных данных показано, какие версии уже установлены.

Обновление пакета

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

pip install <name of package> --upgrade

Применение стратегии обновления

Для пакетов используется так называемое семантическое управление версиями. Это означает, что в случае с версией “1.2.3” это значение можно разбить на такие числа:

Значительноcnm Дополнительный номер Обновление
1 2 3

Крайнее левое число называется Major (основной номер версии). Увеличение этого числа указывает на то, что изменилось множество вещей, и вы больше не можете рассчитывать на то, что методы имеют такие же имена или то же количество аргументов, что и раньше.

Число посредине называется Minor (дополнительный номер версии). При его изменении добавляется функция.

Крайнее правое число называется Patch (исправление). Если увеличивается это число, скорее всего, была исправлена ошибка.

Почему все это важно для обновления пакета? Это связано с мерой осторожности, которую необходимо проявлять. Иногда бывают ситуации, когда вы не можете (или не имеете права) изменить основную и дополнительную версии, но можете устранить ошибки. Это можно указать как часть команды upgrade:

pip install "python-dateutil==2.7.*" --upgrade

В предыдущем примере вы указали, что обновление требуется только в случае наличия новых версий исправлений, для которых используется шаблон “2.7.*”. Это означает, что если вы используете версию 2.7.1, то можете выполнить обновление до 2.7.2 (например), так как крайнее справа число относится к версии исправления. Однако вы не можете выполнить обновление до версии с другим дополнительным номером, например обновить версию 2.7 до 2.8.

Очистка неиспользуемых пакетов

Вы можете также решить, что вам больше не нужен определенный пакет Python, и вы хотите его удалить. В таком случае можно использовать pip uninstall:

pip uninstall python-dateutil

Однако, как можно видеть, в случае выполнения pip freeze предыдущая команда удаляет только библиотеку python-dateutil. Это может быть проблемой, так как проект теперь может содержать много неиспользуемых библиотек, которые занимают место. Чтобы очистить все компоненты, от которых зависит этот пакет, можно использовать обе команды, например так:

pip freeze > requirements.txt
pip uninstall -r requirements.txt -y

Предупреждение

Предыдущие команды приведут к удалению всех установленных пакетов. Для этого сначала они будут записаны в список requirements.txt, а затем все пакеты из этого списка будут удалены. В этом случае лучше всего использовать команду autoremove:

pip install pip-autoremove
pip-autoremove python-dateutil -y

Сводка Завершено XP: 100

1 минута

Благодаря этому модулю вы получили представление о том, как использовать библиотеки, написанных другим пользователем. Вы узнали, как использовать pip для установки этих библиотек, а также для их обновления или удаления по мере необходимости.

Библиотеки постоянно дорабатываются. Для отслеживания этой работы по улучшению каждой версии библиотеки назначается номер версии. Разные приложения на компьютере могут использовать разные версии одной и той же библиотеки.

Затем вы узнали о концепции виртуальной среды. Используя виртуальную среду, вы изолируете себя и свой проект Python от остальной части компьютера.

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

Вы также узнали, как устанавливать библиотеки из списка библиотек и как придерживаться ответственного похода при их обновлении.