требования к pip.txt - PullRequest
1 голос
/ 01 мая 2020

Я пытаюсь сгенерировать requirements.txt, чтобы кто-то копировал мою среду. Как вы, возможно, знаете, стандартным способом является

pip freeze > requirements.txt

. Я заметил, что в нем будут перечислены все пакеты, включая зависимости установленных пакетов, что делает этот список ненужным огромным. Затем я просмотрел и обнаружил pip-chill, который позволяет нам отображать только установленные пакеты в requirements.txt.

Теперь, насколько я понимаю, когда кто-то пытается реплицировать среду с pip install -r requirements.txt, это автоматически установит зависимости установленных пакетов.

Если это так, это означает, что можно безопасно использовать pip-chill вместо pip для генерации requirements.txt. У меня вопрос, есть ли другой риск пропустить зависимости установленных пакетов, использующих pip-chill, которые мне здесь не хватает?

1 Ответ

0 голосов
/ 01 мая 2020

С моей точки зрения, requirements.txt файлы должны перечислять все зависимости, прямые зависимости, а также их зависимости (косвенные, временные). Если по какой-то причине требуются только прямые зависимости, существуют инструменты, которые могут помочь с этим, на первый взгляд, pip-chill кажется неадекватным, поскольку на самом деле он не смотрит на код, чтобы выяснить, какие пакеты напрямую импортируются. Возможно, лучше взглянуть на такие проекты, как pipreqs , pigar , они, кажется, более точны в определении фактических прямых зависимостей (основанных на импорте в вашем коде).

Но в конце дня вы должны курировать такие списки вручную. При написании кода вы тщательно выбираете, какие пакеты вы хотите импортировать, с той же тщательностью вы должны составлять список проектов (и их версий), содержащих эти пакеты. Инструменты могут помочь, но разработчик знает лучше.

...