Как я недавно сказал в теме hn , я рекомендую следующее:
Получите закомментированный requirements.txt
файл с вашими основными зависимостями:
## this is needed for whatever reason
package1
Установите ваши зависимости: pip install -r requirements.txt
. Теперь вы получите полный список ваших зависимостей с pip freeze -r requirements.txt
:
## this is needed for whatever reason
package1==1.2.3
## The following requirements were added by pip --freeze:
package1-dependency1==1.2.3
package1-dependency1==1.2.3
Это позволяет вам сохранять структуру файлов с комментариями, хорошо отделяя ваши зависимости от зависимостей ваших зависимостей. Таким образом, у вас будет намного приятнее время, когда вам нужно удалить одного из них :)
Обратите внимание на следующее:
- Вы можете иметь чистую
requirements.raw
с контролем версий, чтобы восстановить свою полную requirements.txt
.
- Остерегайтесь мерзких URL, которые в процессе заменяются именами яиц.
- Зависимости ваших зависимостей по-прежнему отсортированы в алфавитном порядке, поэтому вы не знаете, какая именно требуется для какого пакета, но на данный момент вам это не нужно.
- Используйте
pip install --no-install <package_name>
для перечисления конкретных требований.
- Используйте virtualenv, если нет.
pipdeptree -r
«Показывает дерево зависимостей в обратном порядке, т.е. подчиненные зависимости перечислены со списком пакетов, которым они нужны».