Как отделить зависимости времени выполнения от зависимостей разработки?Python

Программы на Python
Anonymous
Как отделить зависимости времени выполнения от зависимостей разработки?

Сообщение Anonymous »

Я разрабатываю инструмент тестирования API Python под названием YATL. Во время разработки я установил множество библиотек для тестирования, проверки и форматирования (например, pytest, ruff, mypy).
Теперь я обнаружил, что когда я устанавливаю свой пакет из PyPI с помощью pip install yatl-testing, он заставляет пользователей также устанавливать эти библиотеки только для разработки. Это создает ненужное раздувание.
Я хочу:
  • Для пользователей: когда они запускают pip install yatl-testing, должны быть установлены только библиотеки, необходимые для запуска инструмента.
  • Для разработчиков: когда я или другие участники клонируем репозиторий, мы должны иметь возможность установить пакет вместе со всей разработкой зависимости (линтеры, форматтеры, тестовые платформы) с помощью одной удобной команды.
Моя структура pyproject.toml в настоящее время выглядит следующим образом:

Код: Выделить всё

dependencies = [
"requests>=2.32.5",
"jinja2>=3.1.6",
"pyyaml>=6.0.3",
"lxml>=6.0.2",
]

[tool.poetry.group.dev.dependencies]
ruff = "^0.15.4"
pytest = "^9.0.2"
mypy = "^1.19.1"

[tool.poetry.group.examples.dependencies]
fastapi = "^0.136.0"
uvicorn = "^0.44.0"
Я пробую использовать эту команду:

Код: Выделить всё

rm -rf poetry.lock
poetry install --without dev,examples
Но это не работает и все равно устанавливает библиотеки разработки

Вернуться в «Python»