【发布时间】:2011-09-21 09:59:17
【问题描述】:
我正在使用命令安装带有 pip-python 的软件包列表
pip install -r requirements.txt
有时无论出于何种原因,它都无法安装软件包。即使出现这些故障,是否可以让它继续下一个包?
【问题讨论】:
标签: python installation pip
我正在使用命令安装带有 pip-python 的软件包列表
pip install -r requirements.txt
有时无论出于何种原因,它都无法安装软件包。即使出现这些故障,是否可以让它继续下一个包?
【问题讨论】:
标签: python installation pip
我也有同样的问题。 继续@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)
关于依赖项失败的相同说明当然也适用于此!
【讨论】:
pip install -r requiremnets.txt 慢?
您可以编写一个小包装脚本来迭代调用 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 无法安装所列内容的子需求,那么当然父需求仍然会失败。
【讨论】:
AttributeError: 'module' object has no attribute 'main',见stackoverflow.com/a/49853826/1878788
在 Windows 命令提示符/cmd:
# For each package,p, in requirements.txt, pip install package
FOR /F %p IN (requirements.txt) DO pip install %p
【讨论】: