Программы
Как установить пакеты из requirements.txt через pip, игнорируя ошибки

Как установить пакеты из requirements.txt через pip, игнорируя ошибки

Простой способ установить список зависимостей пакета через стандартный Python менеджер пакетов. При этом чтобы pip не падал на первой же ошибке. Ниже представлены решения для Linux, Mac OS и Windows.

Стандартный способ установки зависимостей пакета через pip

pip install -r requirements.txt

плох тем, что при первой же ошибке скачивания пакета или же его зависимости останавливается. С одной стороны это правильно: если нет нужного пакета, то python программа будет неверно работать.

С другой стороны, если нам нужно "оживить" плохо поддерживающийся проект, будет полезно установить хоть часть зависимостей, чтобы уменьшить объём работ по восстановлению.

Устанавливаем по-пакетно в pip из requirements.txt в Linux и MacOS

Самое замечательное, что формат самого файла requirements.txt чрезвычайно прост: каждая строчка - пакет с правилами для выбора версии без пробелов. И этот формат поддерживается самой командой pip.

Поэтому достаточно построчно "скормить" cat-ом через xargs pip-у сам файл requirements.txt:

cat requirements.txt | xargs -n 1 pip install

Если же вы используете коментарии в вашем requirements.txt, то их можно исключить, используя grep:

grep -v '^#' requirements.txt | xargs -n 1 pip install

Так будут устанавливаться независимо пакет за пакетом, строчка за строчкой из файла зависимостей.

Устанавливаем пакеты в pip из requirements.txt по одному в Windows

Сам подход не сильно отличается от юниксового, но синтаксис у cmd.exe слегка другой. В частности, если мы хотим всё также прочитать строчку за строчкой из requirements.txt и выполнить на каждую pip install, нам потребуется FOR:

FOR /F %x IN (requirements.txt) DO pip install %x

Ну и вариант с учётом комментариев:

FOR /F %x IN (requirements.txt) DO ( IF NOT # == %x ( pip install %x ) )

Логика схожая - всё также бежим по файлу, но теперь ещё проверяем строку.