Скажем, например, я добавляю django к моему venv с pip install django
. Обычный способ создания моего файла needs.txt - pip freeze > requirements.txt
, который выдает:
asgiref==3.2.3
Django==3.0.2
pytz==2019.3
sqlparse==0.3.0
Это все ie. Мое единственное требование - django, и (совершенно эффективное) требование.txt, которое я хочу:
Django>=3.0.2, <4
Бывают моменты, когда это имеет значение. В реальном приложении я получу множество пакетов с перекрывающимися зависимостями. При обновлении это может или не может вызвать проблемы, но почти всегда будут проблемы, если я закрепил все те зависимые пакеты, которые мне не нужны (в приведенном выше примере они принадлежат django разработчикам, а не мне). ).
Чтобы оптимизировать файл раздутых зависимостей require.txt, я могу вручную проверить исходный код (что приводит к пустому файлу require.txt выше;)), но для любого реального приложения это быстро становится непрактичным.