Инструменты разработчика

requirements.txtРазбор и сортировка

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

requirements.txt

Ввод зависимостей

Выбранная группа

Текст обрабатывается в браузере без поиска пакетов, запросов к URL и отправки данных.

Формат и область проверки

В pyproject.toml: Извлекаются только project.dependencies, project.optional-dependencies и build-system.requires. Другие таблицы зависимостей игнорируются.

100 KiB UTF-8 · 1000 зависимостей · 4096 символов на объявление · маркеры не вычисляются.

Ввод или параметры изменились. Повторите разбор перед экспортом.

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

requirements.txt здесь разбирается на отдельные поля. Зависимости Python из pyproject.toml сохраняют разделение на основные, дополнительные и сборочные группы без создания окружения.

Зачем проверять requirements.txt здесь

Условия и источник остаются рядом с объявлением.

Не терять условия установки

Имя, extras, ограничения версий, URL и маркер показаны отдельно вместе с исходным объявлением. Операционная система браузера не используется для исключения зависимостей.

Объявление разделяется на поля, а условие сохраняет связь с ним

Удалять только точные повторы

При упорядочивании requirements.txt предпросмотр показывает число удалений и перестановок. Одинаковые имена с разными ограничениями сохраняются; группы TOML выбираются отдельно.

Две одинаковые карточки объединяются, карточка с другим условием остаётся

Три проверки перед экспортом

01

Различать формат и замену текста

Смена формата не меняет ввод. Подходящий пример загружается через предпросмотр замены. После применения можно один раз восстановить прежние ввод и результат.

02

Проверить начальную группу

Первой выбрана project.dependencies, даже если она пуста. Дополнительные группы и build-system.requires нужно выбирать явно: инструмент не подменяет основную группу сборочной.

03

Убедиться в актуальности результата

Авторазбор выполняется через 350 ms после окончания ввода. Отключите его для запуска кнопкой или Ctrl/Cmd + Enter. Изменения блокируют экспорт до нового результата.

Чтение объявлений по полям

Поля для проверки

JSON содержит исходное и нормализованное имя, extras, ограничения, маркеры, прямые ссылки и позицию в исходнике. Проверяется запись версии пакета, но не попадание конкретной версии в диапазон.

TOML с позицией ошибки

Весь документ проверяется парсером TOML 1.0. Поддерживаемые поля зависимостей должны быть массивами строк. Ошибка указывает на исходную строку; схемы остальных таблиц tool не проверяются.

Полная группа при экспорте

JSON сохраняет поля и название группы, TXT содержит по одному объявлению на строку. На экране добавляется по 50 записей, но копирование и загрузка включают всю подтверждённую группу.

Что именно проверяет инструмент

Без построения окружения
Нет запросов к PyPI, установки, разрешения транзитивных зависимостей, исправления конфликтов или анализа уязвимостей и лицензий. Версии пакетов могут быть несовместимы даже при корректной записи объявлений.
Ограниченный синтаксис pip
Одно именованное объявление PEP 508 на строку. Пустые строки и комментарии pip пропускаются. -r, -c, -e, параметры индекса, hash, пути без имени, продолжения строк и подстановка переменных отклоняются.
Маркеры не вычисляются
Проверяется синтаксис стандартных переменных, extra, сравнений, скобок и and/or. Переменные lock-файлов extras и dependency_groups не поддерживаются. Прямые ссылки остаются текстом, URL не открываются.
Только стандартные поля
Извлекаются project.dependencies, project.optional-dependencies и build-system.requires. Динамические зависимости вызывают ошибку. Таблицы Poetry и dependency-groups не извлекаются. Имена extras допускают строчные буквы, цифры и одиночные дефисы.
Исходник остаётся прежним
Сортировка идёт по нормализованному имени, затем по исходному объявлению. Удаляются только полностью одинаковые объявления одной группы после обрезки внешних пробелов. Комментарии остаются во вводе, но не экспортируются; повторный разбор сбрасывает упорядочивание.
Лимиты и отказ целиком
Не более 100 KiB UTF-8, 1000 зависимостей, 4096 символов на объявление и 32 уровней скобок в маркере. Ошибка в поддерживаемом поле блокирует экспорт всего документа, а не выдаёт неполный список.

Вопросы о requirements.txt

Можно ли добавлять комментарии в файл требований pip?

Да. Строка, начинающаяся с #, и символ # после пробела обозначают комментарий. Фрагмент # без пробела внутри URL остаётся частью ссылки. Комментарии сохраняются во вводе, но не входят в извлечённый список.

Можно ли задавать зависимости в requirements.txt в зависимости от версии Python?

Да, например importlib-metadata; python_version < "3.10". Парсер проверяет и сохраняет маркер. Применимость условия определяет установщик в целевом окружении Python, а не браузер.

Нужен ли requirements.txt при использовании pyproject.toml?

Это зависит от рабочего процесса. Зависимости проекта можно объявить в pyproject.toml, а requirements.txt использовать как вход установщика или список окружения. Здесь извлекается выбранная стандартная группа без создания разрешённого lock-файла и замены конфигурации сборки.

Можно ли разрешить разные версии в requirements.txt?

Можно задать диапазон вроде package>=1,<2 или отдельные объявления с разными условиями. Различные ограничения сохраняются при удалении повторов. Несколько строк одного пакета не становятся альтернативами автоматически и могут конфликтовать.

Как разрешить конфликт версий пакетов?

Нужно проверить противоречивые ограничения менеджером пакетов в целевом окружении. Здесь видны объявления и условия, но совместимая комбинация версий не вычисляется. Удаление точного повтора не устраняет противоречие между разными ограничениями.

Неожиданный результат?

Проверить выбранную группу

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