如何在requirements.txt中强制cmake优先于onnxsim安装?
解决cmake未完全安装就开始装onnxsim的问题
问题根源是pip默认会并行处理requirements里的包,哪怕你按顺序写了cmake和onnxsim,也可能同时启动两者的安装流程,导致onnxsim编译时找不到还在安装中的cmake。
下面是几个可行的解决办法:
拆分requirements文件并嵌套引用
- 创建一个前置依赖文件,比如
requirements-pre.txt,里面只写:cmake - 在主
requirements.txt开头加上嵌套引用,再写onnxsim:-r requirements-pre.txt onnxsim - 执行
pip install -r requirements.txt即可,pip会优先处理嵌套的前置依赖,确保cmake完全安装后再开始装onnxsim。
- 创建一个前置依赖文件,比如
使用pip的串行安装参数
如果你不想拆分文件,直接用pip的--no-parallel参数强制串行安装,执行:pip install -r requirements.txt --no-parallel这个参数从pip 20.3版本开始支持,会严格按照requirements.txt里的顺序逐个安装包,确保cmake安装完成后再处理onnxsim。
用shell脚本自动化分步骤安装
如果你需要兼容旧版本pip,可以写个简单的shell脚本:#!/bin/bash pip install cmake pip install onnxsim运行这个脚本就能自动完成分两步的安装,效果和你手动操作一致。
内容的提问来源于stack exchange,提问作者pktiuk
相关产品推荐
相关产品推荐

