Существует огромное количество пакетов Python, с помощью которых мы решаем задачи программирования на ежедневной основе. Возьмем, например, библиотеку Beautiful Soup. Она не встроена в Python по умолчанию, ее нужно устанавливать отдельно.
В основе многих проектов лежат библиотеки и всякие другие зависимости, и процесс установки каждой из них может оказаться довольно утомительным и времязатратным.
И вот тут-то в игру вступает файл requirements.txt – файл, содержащий список пакетов и библиотек, которые необходимы для работы с проектом и которые можно установить вместе с этим файлом. Это обеспечивает тот факт, что ваша среда будет согласованной, а совместная работа непринужденной.
Формат файла requirements.txt
Схема, показывающая поле, содержащее имя файла «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 на имя каталога, к которому вы хотите получить доступ.
Настройка каталога проекта в командной строке
После чего запустите следующую команду:
$ pip freeze > requirements.txt
И вы увидите, что файл requirements.txt был добавлен:
Только что созданный файл requirements.txt
А вот так выглядит созданный файл requirements.txt внутри:
Список пакетов в файле requirements.txt
На изображении, представленном выше, продемонстрированы зависимости, с которыми вы можете работать, а также их версии.
Как работать с файлом requirements.txt
Теперь, когда у нас есть файл requirements.txt, вы можете увидеть, что внутри него находится длинный список различных пакетов.
Для того, чтобы работать с этими пакетами, вам нужно их установить. Вы можете это сделать через терминал или командную строку.
Введите вот эту команду:
pip install -r requirements.txt
И вы увидите примерно следующее:
Установка пакетов, находящихся в файле requirements.txt
Итак, все зависимости установлены, и теперь вы можете работать с файлом requirements.txt.
Пример использования файла requirements.txt
В этом примере мы будем работать с двумя библиотеками: beautifulsoup4 и requests. С их помощью мы будем извлекать информацию с сайта.
Рабочие библиотеки в файле 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)
И получим вот такой результат:
Код и результат
Плюсы использования файла requirements.txt
- Управление зависимостями: перечислив зависимости вашего проекта в файле requirements.txt, вы сможете легко понять, какие пакеты и какие версии вам нужны.
- Совместное использование вашего проекта с другими разработчиками: если вы делитесь своим проектом с другими разработчиками, вы можете добавить в него файл requirements.txt, чтобы они могли установить все необходимые пакеты. Это может сэкономить им время и нервы. Кроме того, это гарантирует тот факт, что все будут использовать одни и те же версии пакетов.
Заключение
Из этой статьи мы узнали, как можно создать файл requirements.txt, а также в чем преимущества его использования.
А еще я рекомендуют вам попробовать с ним поработать, а также добавить его к нескольким своим проектам.