AttributeError: module 'pyrealsense2' has no attribute 'pipeline'错误 Jeston Xavier NX编译librealsense
使用Jeston平台编译Realsense SDK的问题在Github issue上关注量很大,说明这些问题存在的是普遍现象。
先说一个容易出现的错误,
CMAKE版本问题
问题描述
编译完成后,(注意pip安装的办法不适合于Jeston平台,pip只存放了x86平台的预编译包)
import pyrealsense报错,找不到module
解决方案
Ubuntu 的apt包管理器无法升级到最新的cmake版本,需要自己重新编译,这是很坑的一点,需要将 cmake 更新到 3.12+ 后在编译才能正常工作。步骤如下:
先检查自己的cmake版本(我的版本正常)
如果版本太低,自己编译新版cmake,(太新可能也不好).
注意网上的教程会让你卸载现在系统里cmake,就是执行如下的指令:
sudo apt-get autoremove cmake
千万不要这样操作,这样操作会顺便把所有cmake编译的程序都卸载掉,比如你的电脑里装好了ros系统,那么就全被干掉了。
Cmake可以直接用新版本覆盖老版本,不需要卸载旧版本
1.wget http://www.cmake.org/files/v3.13/cmake-3.13.0.tar.gz
2. tar xpvf cmake-3.13.0.tar.gz cmake-3.13.0/
3. cd cmake-3.13.0/
4. ./bootstrap --system-curl
5. make -j6
6. echo 'export PATH=/home/nvidia/cmake-3.13.0/bin/:$PATH' >> ~/. bashrc
7. source ~/.bashrc
请参考下面两篇文章
https://github.com/IntelRealSense/librealsense/issues/6980#issuecomment-666858977
https://blog.csdn.net/fcts1230/article/details/107956258
AttributeError: module ‘pyrealsense2’ has no attribute ‘pipeline’
问题描述
import pyrealsense2没有报错
而我们一般都只进行这个超过就认为我们的编译已经完成了,测试通过了,其实并没有,实际使用pyrealsense2的函数的时候出现AttributeError: module ‘pyrealsense2’ has no attribute 'pipeline’错误
解决方案
找到这三个文件(路径,文件名会随着你的环境可能不太一样)
/usr/lib/python3/dist-packages/pyrealsense2/pyrealsense2.cpython-36m-aarch64-linux-gnu.so
/usr/lib/python3/dist-packages/pyrealsense2/pyrealsense2.cpython-36m-aarch64-linux-gnu.so.2.40
/usr/lib/python3/dist-packages/pyrealsense2/pyrealsense2.cpython-36m-aarch64-linux-gnu.so.2.40.0
将他们复制到你的脚本的位置
没有报错了
我知道,这一方法并不能优雅地解决这个问题
我记得以前用树莓派4B的时候解决过这个问题,但是忘记了。
附录
我的cmake参数
cmake ../
-DFORCE_RSUSB_BACKEND=ON
-DBUILD_PYTHON_BINDINGS:bool=true
-DPYTHON_EXECUTABLE=/usr/bin/python3.6
-DCMAKE_BUILD_TYPE=release
-DBUILD_EXAMPLES=true
-DBUILD_GRAPHICAL_EXAMPLES=true
-DBUILD_WITH_CUDA:bool=true
需要注意的是FORCE_RSUSB_BACKEND,最好大家给ON,可能会出一些问题,我忘了在哪看到的了。
还有IMPORT_DEPTH_CAM_FW,更新固件,建议关闭,因为cmake的时候还会下载最新的固件文件,现在的网络情况大家都懂,大概率是下不动的,不要在这里折腾,在PC上更新固件就好。
完整参数表:请大家参照这个表自行确定要填入的参数
https://dev.intelrealsense.com/docs/build-configuration
参考链接:
https://github.com/IntelRealSense/librealsense/issues/8324
https://support.intelrealsense.com/hc/en-us/community/posts/360048396854-Raspberry-Pi-ModuleNotFoundError-No-module-named-pyrealsense2-?page=2#community_comment_360012486393
https://github.com/IntelRealSense/librealsense/issues/7078