można napisać mały skrypt otoki zadzwonić pip iteracyjnie, coś takiego:
#!/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:]))
który można nazwać jak pipreqs.py requirements.txt --some --other --pip --args
.
Należy zauważyć, że dotyczy to tylko motta "kontynuuj pomimo awarii" o jeden poziom głębokości - jeśli pip nie może zainstalować podrzędnego wymogu czegoś na liście, to oczywiście wymaganie rodzica nadal będzie nieskuteczne.
Dzięki, wydaje się, że to działa. Istnieje jednak denerwujący efekt uboczny: komunikaty dziennika z potoku wydają się duplikować (i potrójnie, itd.) Im więcej pakietów znajduje się w pliku wymagań. Jest to prawdopodobnie problem z instancją rejestratora. – dangonfast