Как автоматически создать requirements txt
Перейти к содержимому

Как автоматически создать requirements txt

  • автор:

Файл requirements.txt в Python и как его создать

requirements.txt — это простой текстовый файл, который содержит перечень всех модулей и пакетов, необходимых для корректной работы вашей программы. Создавая файл Python requirements.txt , вы избавляете себя от необходимости искать и устанавливать все необходимые модули вручную.

Из статьи вы узнаете о том, как создать файл requirements.txt , о его преимуществах и особенностях использования.

Преимущества использования файла зависимостей

  1. Возможность отслеживать актуальный список всех модулей и пакетов Python, используемых в вашем проекте.
  2. Облегчение процесса установки недостающих компонентов.
  3. Удобство совместной работы. Если на ПК другого пользователя отсутствуют нужные модули, они будут быстро загружены из файла requirements.txt , обеспечив беспроблемный запуск программы.
  4. Если вы захотите удалить, добавить или обновить модуль, изменения будет достаточно внести только в файл requirements.txt .
  5. При загрузке requirements.txt , GitHub проверяет зависимости на наличие конфликтов, и в некоторых случаях устраняет уязвимости.

Как создать файл зависимостей

Для этого вам достаточно перейти в корневой каталог проекта, где хранятся ваши .py -файлы, и создать текстовый документ requirements.txt . Важно убедиться, чтобы название было именно таким.

Также этот файл может быть сгенерирован автоматически с помощью следующей команды:

pip freeze > requirements.txt

Она возвращает список всех установленных модулей с указанием версий и помещает их в текстовый файл. Обратите внимание, что pip freeze подразумевает использование виртуальной среды для текущего проекта. В противном случае, список зависимостей может включать в себя и те пакеты, которые установлены в другие виртуальные среды.

Дополнительный вариант использования этой команды, который возвращает только локальные установленные пакеты:

pip freeze —local

Добавление модулей в файл

После создания файла его необходимо заполнить названиями модулей и их версиями. Самый простой способ — сделать это вручную. Вот пример содержимого requirements.txt :

matplotlib==3.2.1 numpy==1.18.5 pandas==1.0.4 tensorflow==2.3.1

Перечислив все зависимости, сохраняем файл и закрываем его.

Второй способ — команда pip freeze > requirements.txt , которая работает, даже если файл уже существует. Его пустое содержимое будет заполнено списком пакетов так же, как и при генерации нового файла.

Установка модулей из файла

Для того чтобы установить пакеты из requirements.txt , необходимо открыть командную строку, перейти в каталог проекта и ввести следующую команду:

pip install -r requirements.txt

Если вы хотите обновить компоненты вместо их повторной установки, используйте команду pip install -U -r requirements.txt .

Как поддерживать requirements.txt в актуальном состоянии

Если вы уже создали файл с зависимостями ранее, но по какой-то причине не обновляли его содержимое, волноваться не стоит. Выполните следующие шаги:

  1. Выведите список устаревших модулей с помощью pip list —outdated .
  2. Обновите выведенные пакеты вручную с помощью pip install -U PackageName или автоматически, используя pip install -U -r requirements.txt .
  3. Убедитесь, что ваша программа работает корректно.
  4. Используйте pip freeze > requirements.txt , чтобы актуализировать содержимое файла с необходимыми внешними зависимостями.

Таким образом вы сможете без проблем обновить информацию об используемых установленных пакетах, даже если в течение определенного времени не занимались управлением зависимостями.

Помните, что постоянное обновление файла requirements.txt помогает избежать многих проблем, связанных с устаревшими или отсутствующими модулями или пакетами. Как следствие, вы обеспечите корректную работу всех ваших сборок на любых ПК.

Как еще можно создать файл зависимостей?

Можно воспользоваться библиотекой pipreqs , которая сделает все за нас. Её запуск в командной строке сгенерирует файл с зависимостями:

$ pipreqs /home/project/location Successfully saved requirements file in /home/project/location/requirements.txt

При этом никто не запрещает вновь обратиться к pip freeze или заполнению документа вручную.

Советы по использованию файла требований

  1. Всегда используйте pip freeze , чтобы поддерживать список внешних зависимостей в актуальном состоянии.
  2. Храните в requirements.txt только необходимые модули и пакеты. В противном случае файл может получиться слишком большим и нечитаемым, а неиспользуемые компоненты будут лишь впустую тратить ресурсы.
  3. Сохраняйте файл с зависимостями в репозитории проекта, чтобы им могли пользоваться другие люди.
  4. Используйте pip install -r requirements.txt , чтобы автоматически установить все модули, необходимые для работы программы.
  5. Поддерживайте список зависимостей в актуальном состоянии, чтобы обеспечить полную работоспособность проекта на различных машинах.

Заключение

Мы рассказали вам о том, что представляет собой файл requirements.txt в Python и как его создать. Более того, в материале были разобраны преимущества его использования и практические рекомендации.

Ведение файла requirements.txt является неотъемлемой частью управления зависимостями проекта, которая в конечном итоге избавляет от ряда возможных проблем как программистов, так и конечных пользователей.

Управление необходимыми пакетами Python с помощью requirements.txt

Область применения:yesVisual Studio Visual Studio для Mac noVisual Studio Code no

Если вы предоставляете доступ к проекту другим, используете систему сборки или планируете скопировать проект в другое расположение, где нужно восстановить среду, то необходимо указать внешние пакеты, необходимые проекту. Рекомендуется использовать файл requirements.txt (readthedocs.org), содержащий список команд для pip, который устанавливает необходимые версии зависимых пакетов. Наиболее распространенной является команда pip freeze > requirements.txt , которая записывает текущий список пакетов среды в файл requirements.txt.

Технически для отслеживания требований можно использовать любой файл (используя -r при установке пакета), но Visual Studio имеет встроенную поддержку requirements.txt:

Install from requirements.txt-2019

  • Если вы загрузили проект, содержащий файл requirements.txt, и хотите установить все указанные в нем пакеты, разверните узел Среды Python в обозревателе решений, щелкните правой кнопкой мыши узел среды и выберите Установить из файла requirements.txt:
  • Если вы хотите установить зависимости в виртуальном окружении, сначала создайте и активируйте окружение, а затем воспользуйтесь командой Установка из файла requirements.txt. Дополнительные сведения о создании виртуального окружения см. в статье Выбор окружения Python для проекта.
  • Если в среде установлены все необходимые пакеты, можно щелкнуть среду правой кнопкой мыши в обозревателе решений и выбрать Создать файл requirements.txt, чтобы создать необходимый файл. Если файл уже существует, отображается запрос с вариантами обновления:

Generate requirements.txt

Generate requirements.txt

Update requirements.txt options

  • Replace entire file (Заменить весь файл) удаляет все существующие элементы, комментарии и параметры.
  • Обновить существующие записи определяет требования к пакету и обновляет описатели версии в соответствии с установленной версией.
  • Update and add entries (Обновить и добавить записи) обновляет имеющиеся требования и добавляет все другие пакеты в конец файла.

Файлы requirements.txt содержат точные версии всех установленных пакетов, и вы можете использовать эти файлы, чтобы зафиксировать требования окружения. Такие версии позволяют легко воспроизвести ваше окружение на другом компьютере. Файлы с требованиями включают пакеты, даже если они были установлены с диапазоном версий, как зависимость от другого пакета или с установщиком, отличным от pip.

Если pip не удается установить пакет, указанный в файле requirements.txt, установка завершается сбоем. В этом случае нужно вручную исключить этот пакет из файла или использовать параметры pip для указания ссылки на устанавливаемую версию пакета. Например, можно использовать pip wheel для компиляции зависимости и добавления параметра —find-links в файл requirements.txt:

C:\Project>pip wheel azure Downloading/unpacking azure Running setup.py (path:C:\Project\env\build\azure\setup.py) egg_info for package azure Building wheels for collected packages: azure Running setup.py bdist_wheel for azure Destination directory: c:\project\wheelhouse Successfully built azure Cleaning up. C:\Project>type requirements.txt --find-links wheelhouse --no-index azure==0.8.0 C:\Project>pip install -r requirements.txt -v Downloading/unpacking azure==0.8.0 (from -r requirements.txt (line 3)) Local files found: C:/Project/wheelhouse/azure-0.8.0-py3-none-any.whl Installing collected packages: azure Successfully installed azure Cleaning up. Removing temporary dir C:\Project\env\build. 

Связанный контент

  • Управление окружениями Python в Visual Studio
  • Выбор интерпретатора для проекта
  • Пути поиска
  • Справочная информация по окну «Окружения Python»

Python создание и установка из requirements.txt

Для того чтобы создать список установленных пакетов в виртуальном окружении python (env/venv) и сохранить результат в файл requirements.txt, необходимо выполнить команду:

pip freeze > requirements.txt

Для того чтобы установить все пакеты из файла requirements.txt, необходимо выполнить команду:

pip install -r requirements.txt

Понятное дело, перед выполнением любой из команд, необходимо активировать виртуальное окружение, например, если виртуальное окружение создано в каталоге /script/venv то команда будет следующая:

переходим в каталог script:

cd /script

активируем виртуальное окружение:

source venv/bin/activate

чтобы выйти из виртуальное окружения, выполняем команду:

deactivate

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

Это если проект работает. Если нет — запускать, смотреть, на какие библиотеки ругается, и гуглить эти библиотеки.

31 янв 2015 в 20:38
спасибо, создание удалось
31 янв 2015 в 21:08

Чтобы получить запрошенный файл потребуется перенаправить вывод этой команды в файл: pip freeze > requirements.txt

10 апр 2015 в 18:36

Не забывайте только, что это список всех пакетов, имеющихся в текущем интерпретаторе, а не только использующихся в проекте

31 июл 2019 в 20:44

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

pip freeze 

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

pip freeze > requirements.txt 

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

Отслеживать
ответ дан 29 ноя 2016 в 9:48
Igor Osadchyi Igor Osadchyi
369 3 3 серебряных знака 3 3 бронзовых знака
Добавьте комментарии к своему ответу. Что происходит в этом куске кода, чем это может помочь и т.п.
29 ноя 2016 в 10:10
Это список всех пакетов, имеющихся в текущем интерпретаторе, а не только использующихся в проекте
31 июл 2019 в 20:42
Подразумевается использование venv, который для каждого проекта свой.
4 авг 2019 в 18:19

При выполнении вне виртуальной среды текущего проекта могут быть подтянуты лишние пакеты — это не совсем так. Будут подтянуты пакеты из текущей виртуальной среды. Так в общем случае эта среда никак не связана с проектом, то там может быть все что угодно, т.е. не просто лишние, а вообще другие — установленные в тут другую виртуальную среду.

16 мар 2021 в 18:26

Лучше всего смотреть в 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.

Отслеживать
ответ дан 7 апр 2015 в 8:43
3,071 12 12 серебряных знаков 20 20 бронзовых знаков

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

$ pip install pip-tools $ pip-dump 

Отслеживать
ответ дан 8 апр 2015 в 22:03
52.3k 11 11 золотых знаков 108 108 серебряных знаков 312 312 бронзовых знаков

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

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

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *