Pip Install -r продолжить после неудачной установки - PullRequest
23 голосов
/ 23 июня 2011

Я устанавливаю список пакетов с помощью pip-python, используя команду

pip install -r requirements.txt

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

Ответы [ 3 ]

30 голосов
/ 23 января 2014

У меня такая же проблема.продолжая линию @Greg Haskins, возможно, эта однострочная строка в bash более лаконична:

cat requirements.txt | while read PACKAGE; do pip install "$PACKAGE"; done

# TODO: extend to make the script print a list of failed installs,
# so we can retry them.

(для сценариев, не являющихся оболочками: она вызывает pip install для каждого из перечисленных пакетов)

то же самое примечание о сбое зависимостей, конечно, применимо и здесь!

16 голосов
/ 23 июня 2011

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

#!/usr/bin/env python
"""
pipreqs.py: run ``pip install`` iteratively over a requirements file.
"""
def main(argv):
    try:
        filename = argv.pop(0)
    except IndexError:
        print("usage: pipreqs.py REQ_FILE [PIP_ARGS]")
    else:
        import pip
        retcode = 0
        with open(filename, 'r') as f:
            for line in f:
                pipcode = pip.main(['install', line.strip()] + argv)
                retcode = retcode or pipcode
        return retcode
if __name__ == '__main__':
    import sys
    sys.exit(main(sys.argv[1:]))

, который можно назвать как pipreqs.py requirements.txt --some --other --pip --args.

Обратите внимание, что применяется только девиз "продолжить несмотря на сбой" на один уровень - если pip не может установить под-требование для чего-либо из перечисленного, тогда, конечно, родительское требование все равно не будет выполнено.

1 голос
/ 22 февраля 2019

В командной строке Windows / cmd:

# For each package,p, in requirements.txt, pip install package
FOR /F %p IN (requirements.txt) DO pip install %p
...