Requirements.txt - как получить?

Рейтинг: 32Ответов: 6Опубликовано: 31.01.2015

Как получить requirements.txt, имея django проект?

Ответы

▲ 32Принят

С помощью команды:

pip freeze
▲ 29

Чтобы получить список пакетов в проекте выполняем команду

pip freeze

Для записи вывода в requirements.txt дополняем следующим образом:

pip freeze > requirements.txt

Команду выполняем в корне проекта. Там же появится и файл. Подразумевается использование активного venv для текущего проекта. При выполнении вне виртуальной среды текущего проекта могут быть подтянуты лишние пакеты, не связанные с текущим проектом!

▲ 11

Лучше всего смотреть в INSTALLED_APPS и выковыривать всё вручную. С pip freeze есть вариант получить тыкву через некоторое время, ибо он вытягивает абсолютно все пакеты вместе с их зависимостями (включая системные), а пакеты со временем обновляются, старые версии удаляются. Да и нечего вам рулить зависимостями вручную - это задача менеджера пакетов (pip или easy_install).

Лучше всего заполнять файл requirements по мере написания проекта, а не после.

Добавлено: Есть подходящая опция у pip: pip freeze --local.

Из справки: If in a virtualenv that has global access, do not output globally-installed packages.

▲ 5

Чтобы создать requirements.txt или обновить уже существующий файл, чтобы он соответствовал текущему virtualenv, можно использовать pip-dump команду:

$ pip install pip-tools
$ pip-dump

Пакет работает на *nix системах.

▲ 3

Если вы работаете в PyCharm, то можно сформировать requirements.txt на основе текущего проекта: https://www.jetbrains.com/help/pycharm/managing-dependencies.html. Удобно, так как добавляются только пакеты которые используются в проекте. Может быть аналогичный инструмент в другой используемой IDE.

▲ 2

Для работы с requirements.txt есть Python библиотека pipreqs

Установка: pip install pipreqs

  • Чтобы сгенерировать файл requirements.txt используйте pipreqs /path/to/project/folder
  • Если requirements.txt уже есть и необходимо его перезаписать, то используйте флаг —force
  • Если нужно просто посмотреть на используемые библиотеки без создания, флаг —print

Подробнее здесь