Я устанавливаю список пакетов с пип-питоном, используя команду
pip install -r requirements.txt
иногда не удается установить пакеты по любой причине. Возможно ли, чтобы он продолжал следующий пакет даже с этими отказами?
Я устанавливаю список пакетов с пип-питоном, используя команду
pip install -r requirements.txt
иногда не удается установить пакеты по любой причине. Возможно ли, чтобы он продолжал следующий пакет даже с этими отказами?
Вы можете написать небольшую обертку script, чтобы вызвать pip iteratively, что-то вроде:
#!/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
.
Обратите внимание, что это относится только к девизу "продолжать, несмотря на неудачу" на одном уровне, - если пип не может установить вспомогательное требование чего-то перечисленного, тогда, конечно же, требование родителя будет по-прежнему терпеть неудачу.
У меня та же проблема. продолжая линию @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.
(для не-shellscripters: он вызывает pip install
для каждого из перечисленных пакетов)
здесь, конечно же, применяется одна и та же заметка о неудаче зависимостей!