简介
本文不需要从源码编译pybind11,之前搜了一圈站内都是从源码编译pybind11,属于是传谣了,这里点名两篇文章谣言1,谣言2。
首先说明onnx的1.12.0版本和jetson nano上ubuntu18.04安装的protobuf compiler3.0.0版本是不兼容的,因为要跑Yolov5,所以尝试了最低要求,也就是onnx的1.9.0版本,成功安装。此外,所有本文中的pip指的都是python3.6.9的pip,我这边已经没有python2的pip了,如果你那边还有,请把pip换成pip3。
安装步骤
sudo获取权限我就不打了,安装包的时候要么用虚拟环境,要么-u切成users权限安装,要么跟我一样先sudo,然后直接全部在root权限下安装(不推荐)。
1.安装protobuf相关
apt-get install protobuf-compiler libprotobuf-dev
onnx安装时会搜索存在的protobuf编译器,所以要先安装,不然会报“onnx protobuf compiler not found”错误。
2.安装pybind11
直接运行pip install pybind11,确实不起作用,但:
pip install pybind11[global]
没错,只要在pybind11后加[global],就解决了错误
“onnx could not find pybind11 missing pybind11_DIR”或者缺少“pybind11Config.cmake”, “pybind11-config.cmake”的错误。
3.安装onnx
pip install onnx==1.9.0
为啥是这个版本,在简介里说过了,不然会报“onnx error no match for operator []”的错误。
最终展示
放张成功安装的图,免得有人说空口无凭。