img

Requirements.txt – как создать и установить файл requirements.txt в Python

21 ноября
20:00
Бесплатный вебинар
Введение в Docker
Ведущий — Филипп Игнатенко.
Руководитель центра разработки
Записаться
img
img

 

Python Requirements.txt – How to Create and Pip Install Requirements.txt in Python

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

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

И вот тут-то в игру вступает файл requirements.txt – файл, содержащий список пакетов и библиотек, которые необходимы для работы с проектом и которые можно установить вместе с этим файлом. Это обеспечивает тот факт, что ваша среда будет согласованной, а совместная работа непринужденной. 

Формат файла requirements.txt

image-219

Схема, показывающая поле, содержащее имя файла «requirements.txt», и поле под ним, содержащее основной текст вида «имя_пакета == версия»

На изображении, представленном выше, продемонстрирован образец созданного файла requirements.txt, который содержит список пакетов и версий их установки.

Ключевые понятия

Я уже успел упомянуть несколько понятий, с которыми вы, возможно, не знакомы. Ниже я расскажу, что они значат, а также упомяну и другие не менее важные термины, с которыми вы столкнетесь при работе с файлом requirements.txt:

  • Зависимости – это программные компоненты, в которых нуждается программа для правильной работы. Это могут быть библиотеки, фреймворки и прочие программы. 
  • Пакеты – это способ группировки связанных зависимостей. С их помощью устанавливать и управлять зависимостями становится гораздо проще. 
  • Виртуальная среда – это каталог, который содержит копию интерпретатора Python и всех пакетов, необходимых для определенного проекта. 
  • Pip – это диспетчер пакетов для Python. Вы можете использовать его для того, чтобы устанавливать, удалять пакеты Python и управлять ими. 

Как создать файл requirements.txt

Для того, чтобы создать файл requirements.txt, вам нужно настроить виртуальную среду. Если вы используете PyCharm, то виртуальная среда уже настроена (.venv). Но если вы работаете в Visual Studio Code, вам придется создать виртуальную среду самостоятельно. 

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

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

$ cd folder-name #cd - change directory

Замените в этой команде folder-name на имя каталога, к которому вы хотите получить доступ.

vgAz2y8K2iS5wT805qSCN4GhJSv4CDu_eY1_lD_xjetaHhqkNIIvZfCmlVBmBfYYw3PrEYlkq2lasDFsc3YhMtqxZwP4AVn3P70820VeUPdVZxVXU8Cw_UNqPhKnKn3fqpy1sgC5UY4urtfqj4VlYcg

Настройка каталога проекта в командной строке

После чего запустите следующую команду:

$ pip freeze > requirements.txt

И вы увидите, что файл requirements.txt был добавлен:

requirementfile

Только что созданный файл requirements.txt

А вот так выглядит созданный файл requirements.txt внутри:

1NEE23GJuy_i0qdANdi6twSQGnjfHrjVZ6LuUlENe57kqsMoUve3W0WcmxZLfY9JW04GrYZghVWFtY4_LnVU-isHVxv0ySpMCDQ5sYwhw2BhlQjCLbj2oa_v_nMIUgar2xayjkPRj6ogUARpZEYtKiA

Список пакетов в файле requirements.txt

На изображении, представленном выше, продемонстрированы зависимости, с которыми вы можете работать, а также их версии.

Как работать с файлом requirements.txt

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

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

Введите вот эту команду:

pip install -r requirements.txt

И вы увидите примерно следующее:

7FDCFqn38aY2GFcoqtrKyy4Oyu_8cAPdJkOxbUIdZTfSalvufWIrbEehT61tgJxuhqiA0nINSfkyHcbE-H-H-hc77rY1zTkMQhyRijtWBOEqcaWZL7fnyNxRDO1hmKcagc9sYI4qijgj6Ut2lVY-zto

Установка пакетов, находящихся в файле requirements.txt

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

Пример использования файла requirements.txt

В этом примере мы будем работать с двумя библиотеками: beautifulsoup4 и requests. С их помощью мы будем извлекать информацию с сайта. 

M5xLixBqsvL-vtUPFwEZq7NzB-jJDSpycapgv22OxtBKRFa9ysE0kIIPSG0mjltzfknNMdtlPYC8xDWwVnNyGiURQxHFJCrMI_Axexn7dKMRfVN4qUHLt0TEojj_pbLMW-cz_9wlrVw6VOOr8MaD-uQ

Рабочие библиотеки в файле requiremets.txt для данного примера

На изображении, представленном выше, вы видим, что в файле requirements.txt есть обе эти библиотеки, и, кроме того, указаны их версии. Так вот, раз мы установили их ранее, мы можем с ними работать.

  • Импортируем библиотеку BeautifulSoup из пакета bs4 (beautifulsoup4). Также импортируем библиотеку requests.
from bs4 import BeautifulSoup
import requests
  • Для того, чтобы получить информацию с веб-сайта по его URL-адресу, нам нужно подключиться к библиотеке requests, а для этого нам понадобиться метод .get().
web_data = requests.get("https://www.lithuania.travel/en/category/what-is-lithuania", headers={"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36"})
  • Теперь, когда мы получили доступ к URL-адресу, библиотека BeautifulSoup принимает web_data и возвращает все содержимое HTML, которое в нем есть.
soup = BeautifulSoup(web_data.content, features="html.parser")
  • В итоге я решил вернуть элементы с тегом <p>, который находится в позиции [0].
news_info = soup.findAll("p")[0]
print(news_info.text

Собираем все вместе:

from bs4 import BeautifulSoup
import requests
web_data = requests.get("https://www.lithuania.travel/en/category/what-is-lithuania", headers={"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36"})
soup = BeautifulSoup(web_data.content, features="html.parser")
news_info = soup.findAll("p")[0]
print(news_info.text)

И получим вот такой результат:

4H_qTUMuvWXNGMKpGrxHfVY6WaEntz51xZ936GwYWY6JRXILVPyd06spEt6emH0XKajK3Ov0qLixzgrqtEC5cIr-81UxyB61fTPPNhGcDc5eEhVoateHzmpAnvowdtbkqJgdz7IlpZ2aGtv9OWLCUCA

Код и результат

 

Плюсы использования файла requirements.txt

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

Заключение 

Из этой статьи мы узнали, как можно создать файл requirements.txt, а также в чем преимущества его использования. 

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

Ссылка
скопирована
Получите бесплатные уроки на наших курсах
Все курсы
Программирование
Скидка 25%
Python Advanced. Продвинутый курс
Освойте асинхронное и метапрограммирование, изучите аннотацию типов и напишите собственное приложение на FastAPI. Улучшите свои навыки Python, чтобы совершить быстрый рост вашего грейда до уровня middle.
Получи бесплатный
вводный урок!
Пожалуйста, укажите корректный e-mail
отправили вводный урок на твой e-mail!
Получи все материалы в telegram и ускорь обучение!
img
Еще по теме:
img
Гипервизор - это программное обеспечение для виртуализации, используемое для создания и запуска виртуальных машин (ВМ). Гипервиз
img
Виртуализация серверов позволяет запускать несколько виртуальных машин на одном физическом сервере. Запуск виртуальных машин (ВМ
img
Сегодня мы рассмотрим, как настроить и использовать PHP в проекте. Но прежде чем начать, нужно понять, что такое PHP. Что такое
img
Как разработчик, вы знаете, что HTML расшифровывается как HyperText Markup Language (язык разметки гипертекста). HTML — это язык
img
Бесконечные споры вокруг искусственного интеллекта приводят к путанице. Существует много терминов, которые кажутся похожими, но
img
SVG расшифровывается как масштабируемая векторная графика. Это веб-дружелюбный векторный формат файлов, используемый для отображ
21 ноября
20:00
Бесплатный вебинар
Введение в Docker