Перейти к содержанию

Работа с зависимостями в Python

pip

Создание файла requirements.txt

  1. Установите зависимости и сохраните их в lock-файл:
    pip freeze > requirements.txt
    

pipenv

Создание файла Pipfile.lock

  1. Установите pipenv:

    pip install pipenv
    

  2. Создайте Pipfile.lock:

    pipenv install
    

poetry

Создание файла poetry.lock

Если файл poetry.lock еще не существует, Poetry создаст его автоматически при установке зависимостей. Если файл уже существует, он будет обновлен. Для этого выполните команду:

poetry lock

Эта команда обновит зависимости, указанные в pyproject.toml, и создаст или обновит файл poetry.lock.

pipdeptree

Создание файла pipdeptree.txt

При обнаружении файла pipdeptree.txt агент проанализирует его содержимое как результат вывода утилиты pipdeptree в стандартном формате дерева зависимостей. Для создания файла можно использовать следующие команды:

pipdeptree > pipdeptree.txt
Для фильтрации вывода по конкретным пакетам окружения:
pipdeptree --packages "example1,example2" > pipdeptree.txt

Взаимодействие с другими манифестами

Для того чтобы зависимости основного манифеста проекта (например, requirements.txt) не отображались в результатах анализа вместе с результатом анализа pipdeptree рекомендуется исключить этот манифест из сканирования:

    johnny scan python . \
      --ignore "requirements.txt"

uv

Создание файла uv.lock

Если файл uv.lock еще не существует, uv создаст его автоматически при установке зависимостей. Если файл уже существует, он будет обновлен. Для этого выполните команду:

uv lock

Эта команда обновит зависимости, указанные в pyproject.toml, и создаст или обновит файл uv.lock.

Поддержка механизма UV workspaces

Механизм UV workspaces позволяет централизованно управлять несколькими пакетами.

В pyproject.toml в секции workspaces может быть указана следующая запись:

[tool.uv.workspace]
members = [
    "packages/core",
    "packages/api"
]

В таком случае агент Johnny будет обрабатывать корневой pyproject.toml и все pyproject.toml всех пакетов из workspace как единое целое.

pdm

Создание файла pdm.lock

Если файл pdm.lock еще не существует, pdm создаст его автоматически при установке зависимостей. Если файл уже существует, он будет обновлен. Для этого выполните команду:

pdm lock

Эта команда обновит зависимости, указанные в pyproject.toml, и создаст или обновит файл pdm.lock.

Создание файла pylock.toml

Помимо стандартного формата pdm позволяет сформировать lock-файл в формате pylock.toml. Для фиксирования зависимостей в этом формате перед выполнением pdm lock необходимо выполнить следующую команду:

pdm config lock.format pylock
Страница была полезна?