如何解决 :libstdc++.so.6: version `GLIBCXX_3.4.30‘ not found

在使用 python 以下的命令时,

from scipy.signal import convolve

出现报错:

 /home/anaconda3/envs/norm/lib/python3.9/site-packages/scipy/linalg/../../../../libstdc++.so.6: version `GLIBCXX_3.4.30' not found (required by /home/anaconda3/envs/norm/lib/python3.9/site-packages/scipy/fft/_pocketfft/pypocketfft.cpython-39-x86_64-linux-gnu.so)

在这里,使用了从网上搜到的以下方法:

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install libstdc++6

但是并没有啥用,上述办法是通过重新安装libstdc++6来解决的。但是我通过输入以下命令时:

 strings /usr/lib/x86_64-linux-gnu/libstdc++.so.6 | grep GLIBCXX

得到以下内容:

在这里插入图片描述
可以发现,GLIBCXX_3.4.30是存在的

所以,并不是缺失导致报错的。

下面介绍解决的办法:

ln -sf /usr/lib/x86_64-linux-gnu/libstdc++.so.6 /home/yourenvname/anaconda3/envs/pycode/bin/../lib/libstdc++.so.6

既然已经存在了上述目标文件,所以只需要重新创建软连接使得anaconda3 能够识别到这个目标文件就可以了。

以上命令需要修改的地方,在于yourenvname,根据自己的环境名称进行修改,
在这里插入图片描述
这样就没有报错啦,重新输入python命令,发现没有报错了

在这里插入图片描述

参考

https://github.com/pybind/pybind11/discussions/3453
https://askubuntu.com/questions/1418016/glibcxx-3-4-30-not-found-in-conda-environment
https://stackoverflow.com/questions/48453497/anaconda-libstdc-so-6-version-glibcxx-3-4-20-not-found

<think>好的,用户想在树莓派上的Ubuntu 20.04系统上部署和运行YOLOv8进行物体检测。首先,我需要回顾一下相关的步骤和可能遇到的问题。 首先,系统准备方面,用户需要确保树莓派的系统已经正确安装。根据引用[3],树莓派可以安装Ubuntu 20.04服务器版,但可能需要额外的配置。用户可能需要检查系统是否更新,如引用[2]提到的sudo apt update和upgrade,确保系统是最新的,这有助于避免依赖问题。 接下来是安装Python环境。YOLOv8基于Python,所以需要安装Python 3.8或更高版本。考虑到树莓派的资源限制,使用虚拟环境是个好主意,比如venv,这样可以隔离依赖,避免系统级别的冲突。 然后安装YOLOv8。用户需要使用pip安装ultralytics包。这里需要注意,树莓派的ARM架构可能导致某些依赖无法直接通过pip安装,可能需要预编译的轮子或者从源码编译,这可能会比较耗时,并且需要安装必要的开发工具,比如gcc、make等。 OpenCV的安装也是一个关键点。虽然pip可以安装opencv-python,但在树莓派上可能需要优化版本或者使用apt安装,比如引用[2]提到的ROS安装过程中的依赖处理,可能需要安装libopencv-dev。此外,处理视频流或摄像头输入时,可能需要额外的库,比如libjpeg-dev、libpng-dev等。 模型部署方面,用户可以选择直接使用YOLOv8的预训练模型,或者转换模型到ONNX等格式以提高在树莓派上的推理速度。由于树莓派的计算资源有限,模型量化或使用更轻量级的模型(如YOLOv8n)可能是必要的。此外,使用TensorRT或其他推理加速库可能不太现实,因为树莓派的GPU支持有限,主要依赖CPU推理,这会影响实时性能。 编写推理脚本时,需要确保正确处理图像输入和输出。可能需要用到OpenCV来捕获摄像头画面,并实时显示检测结果。这里需要注意,树莓派的USB带宽可能限制摄像头的帧率,使用CSI摄像头模块可能会有更好的性能。 性能优化方面,调整输入图像的尺寸到较小的分辨率(如320x320)可以减少计算量。另外,限制同时运行的进程,避免资源竞争,也能提高稳定性。如果用户需要更快的推理速度,可能需要考虑模型蒸馏或剪枝,不过这些步骤比较复杂,可能超出初级用户的范畴。 测试部分,用户需要验证安装是否成功,运行简单的检测命令,比如yolo detect predict。如果遇到错误,可能需要检查CUDA是否可用,但树莓派通常没有NVIDIA GPU,所以只能用CPU模式,这可能导致推理速度较慢。用户需要权衡检测速度和准确率,可能需要调整置信度阈值或使用更小的模型。 最后,生成相关问题时要考虑用户可能的后续疑问,比如性能优化、实时检测实现、模型训练和迁移学习,以及与其他硬件的结合,比如使用NPU加速棒等。</think>### 在树莓派Ubuntu 20.04上部署YOLOv8的步骤 #### 1. **系统准备** - **更新系统**:确保系统为最新状态(引用[2]): ```bash sudo apt update && sudo apt upgrade -y ``` - **安装必要依赖**: ```bash sudo apt install -y python3-pip python3-venv libopenblas-dev libatlas-base-dev libjpeg-dev libpng-dev ``` #### 2. **配置Python虚拟环境** ```bash python3 -m venv yolov8_env source yolov8_env/bin/activate ``` #### 3. **安装YOLOv8和相关库** - **安装PyTorch(ARM兼容版本)**: 树莓派需使用预编译的PyTorch轮子(推荐使用`piwheels`源): ```bash pip3 install torch torchvision --extra-index-url https://download.pytorch.org/whl/rocm5.1.1 ``` - **安装Ultralytics YOLOv8**: ```bash pip3 install ultralytics opencv-python-headless ``` #### 4. **验证YOLOv8安装** ```bash python3 -c "from ultralytics import YOLO; print(YOLO(&#39;yolov8n.pt&#39;))" ``` - 若输出模型信息,则安装成功。 #### 5. **运行物体检测** - **示例脚本**(保存为`detect.py`): ```python from ultralytics import YOLO import cv2 model = YOLO(&#39;yolov8n.pt&#39;) results = model.predict(source=&#39;0&#39;, show=True, conf=0.5) # 使用摄像头(索引0) ``` - **执行命令**: ```bash python3 detect.py ``` #### 6. **性能优化建议** - **降低输入分辨率**: 在`predict`中添加`imgsz=320`参数,减少计算量。 - **使用轻量模型**: 选择`yolov8n`(Nano版)而非`yolov8s/m/l`。 - **关闭GUI显示**: 若仅需输出结果,设置`show=False`并保存到文件。 --- ### 常见问题解决 - **报错`GLIBCXX版本不兼容`**: 更新GCC库: ```bash sudo apt install libstdc++6 ``` - **摄像头无法访问**: 确保用户权限: ```bash sudo usermod -a -G video $USER ``` 重启后生效[^1]。 ---
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

简朴-ocean

继续进步

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值