在Ubuntu18.04和Ubuntu20.04上运行YOLOv7代码的时候都出现了这个报错,和大家分享一下解决的过程
Ubuntu18.04报错
Ubuntu18.04在配置好yolov7虚拟环境对应的torch,torchvision以及librealsense后,运行detect.py文件时,报下面的错误:
AttributeError: module 'pyrealsense2' has no attribute 'pipeline'
网上很多博主都在说安装pyrealsense和cmake,本人大多尝试过了,所以和大家讲一下更有效的方法。
先打开路径:archiconda>envs>(你的虚拟环境名词)>lib>python3.X(你的python版本)>site-packages 下查看是否有pyrealsense2目录。
若有pyrealsense2目录
直接看3.需要在bashrc里添加路径
若没有pyrealsense2目录
1.此时到根目录:usr/local/lib/python3.X(X为你的虚拟环境python版本) 下查看是否有pyrealsense2目录,若没有则按照网上的教程去安装pyrealsense2,可参考:
在Jetson Nano上编译 pyrealsense2库包,并在Intel的tof相机上进行测试-阿里云开发者社区
2.若有pyrealsense2文件夹,则将该文件夹复制到archiconda>envs>(你的虚拟环境名词)>lib>python3.X(你的python版本)>site-packages路径下。
3.复制完成以后,需要在bashrc里添加路径(我的是python3.6根据情况自行改动)
export PATH=$PATH:~/.local/bin
export PYTHONPATH=$PYTHONPATH:/usr/local/lib
export PYTHONPATH=$PYTHONPATH:/usr/local/lib/python3.6/pyrealsense2
记得
source ~/.bashrc
4.最后,需要把/usr/local/lib下的几个文件复制到yolo运行脚本文件的目录下(下面的是文件名字,不是代码):
librealsense2.so
librealsense2.so.2.48
librealsense2.so.2.53
librealsense2.so.2.55
总结一下就是,需要在usr/local/lib/python3.X(X为你的虚拟环境python版本)和archiconda>envs>(你的虚拟环境名词)>lib>python3.X(你的python版本)>site-packages路径下都有pyrealsense2文件夹。
Ubuntu20.04报错
20.04的报错本人一直都在尝试安装pyrealsense2,后来发现archiconda>envs>(虚拟环境名词)>lib>python3.X(python版本)>site-packages路径下的pyrealsense2文件夹下的文件目录是:
pybackend2.cpython-38m-aarch64-linux-gnu.so
pybackend2.cpython-38m-aarch64-linux-gnu.so.2
pybackend2.cpython-38m-aarch64-linux-gnu.so.2.53.1
pyrealsense2.cpython-38m-aarch64-linux-gnu.so
pyrealsense2.cpython-38m-aarch64-linux-gnu.so.2.53
pyrealsense2.cpython-38m-aarch64-linux-gnu.so.2.53.1
pyrealsense2.cpython-38m-aarch64-linux-gnu.so.2.54
pyrealsense2.cpython-38m-aarch64-linux-gnu.so.2.54.1
pyrsutils.cpython-38m-aarch64-linux-gnu.so
pyrsutils.cpython-38m-aarch64-linux-gnu.so.2.55
pyrsutils.cpython-38m-aarch64-linux-gnu.so.2.55.1
发现之前安装的pyrealsense2都是python3.8版本的,但是我用的虚拟环境是python3.6,所以我就查看了usr/local/lib目录,发现目录下只有python2.7和python3.8,没有python3.6,但是发现python3.8降成python3.6很麻烦,真的很崩溃了。
所以就尝试从usr/lib/目录下把python3.6文件夹直接复制到usr/local/lib/目录下,然后把18.04里usr/local/lib/python3.6/的pyrealsense2文件夹直接打包复制到了20.04复制的usr/local/lib/python3.6目录下,其他的操作参照上面Ubuntu18.04没有pyrealsense2目录的过程即可。
第一次发博有不足的地方请大家见谅,有问题可以评论留言或者私信。