问题提出:
前段时间配置环境,安装onnx的时候出现了一个报错,这个报错之前我看到都是删除该配置环境,重新建立环境来解决的,但是这次我需要继承上一个环境,因此直面问题。
可以直接跳转最后一句话
一、核心问题分析
根据报错信息,onnx
在编译时依赖 CMake 生成构建文件,但当前环境中未找到 CMake 可执行文件。可能原因包括:
- CMake 未安装或版本过低。
- 环境变量未配置,导致系统无法定位 CMake。
- 依赖库缺失(如
protobuf
相关库)
二、解决方案步骤
1. 安装 CMake 并验证
-
Windows 用户:
- 从 CMake 官网 下载安装包,选择 **
Add to PATH
** 选项。 - 安装完成后,在命令行验证:
确保输出版本 ≥3.13(onnx 要求的最低版本)。cmake --version
- 从 CMake 官网 下载安装包,选择 **
-
Linux 用户:
sudo apt-get update sudo apt-get install cmake # 安装默认版本 # 若需安装更高版本,建议通过源码编译[3](@ref)
2. 安装 protobuf 依赖
onnx
编译依赖 Protobuf 库。需安装以下组件:
# Linux
sudo apt-get install libprotobuf-dev protobuf-compiler
# Windows(需通过 Conda 或手动安装)
conda install protobuf
验证 Protobuf 是否成功安装:
protoc --version # 应输出类似 libprotoc 3.20.3
3. 使用 Conda 安装(推荐)
若通过 pip
安装失败,改用 Conda 可自动解决依赖问题:
conda install -c conda-forge onnx=1.8.1
Conda 会处理 CMake 和 Protobuf 的依赖关系。
4. 手动安装预编译包
若需坚持使用 pip
,可尝试安装预编译的二进制包(无需本地编译):
pip install onnx==1.8.1 --prefer-binary
5. 检查 Python 环境
- Python 版本:确保使用 Python ≥3.6 且 ≤3.9(onnx 1.8.1 不支持 Python 3.10+)。
- 虚拟环境:在干净的虚拟环境中重试安装:
conda create -n onnx_env python=3.8
conda activate onnx_env
pip install onnx==1.8.1
自此问题基本可以解决。
还有出现的解决方案就是更新setuptools或者变化安装的版本,最好的还是换一个虚拟环境
例如,我是想安装onnx,打开requirements.txt,更换需求的环境,可以参考【深度学习】onnx、onnx-runtime、CUDA版本 对应关系_onnx和onnxruntime版本对应-CSDN博客
最终解决问题!