赞
踩
最近在树莓派上装用conda装yolov5的环境,不直接用树莓派自带的python3是因为我喜欢捣鼓环境,conda可以很好的解决python环境问题,而自带的python3一旦环境崩了,处理起来可能很麻烦,重装系统也费时间。
因为自己的环境部署能力还凑活,基本就是遗忘的某些步骤参考下博客,其中发现网上很多文章都存在不小的问题,而这些问题最终导致我多花费了工作量,我自己踩了一遍并记录下来。我会详细阐述搭建过程的步骤,操作的原因(自己的理解),系统和软件的版本。我将问题和解决办法分开纪录,不需要关注问题的直接看------------------解决办法-------------以下的内容即可。那么开始!!!
这里我们在官网选择64位系统的2022-04-07版本。为什么不选择最新版是因为根据我个人习惯,我认为最新版都会存在或多或少的bug,遇到了处理起来很心累,所以选择最新版之前的版本较为稳定。
链接: https://downloads.raspberrypi.org/raspios_arm64/images/raspios_arm64-2022-04-07/
下载好后用读卡器写入SD卡插上开机使用即可,这里不再多赘述。需要开机步骤的请参考其他博客。
如果只是为了跑通yolov5,此步骤不需要,可以跳过。
网上很多博客给出的镜像都存在问题,要么需要密匙,添加后又不能用,要么镜像本身就有问题,sudo apt update后就报错。
下面是我实验的可用镜像源:
# /etc/apt/sources.list 替换下面的镜像
deb https://mirrors.aliyun.com/debian/ bullseye main non-free contrib
deb-src https://mirrors.aliyun.com/debian/ bullseye main non-free contrib
deb https://mirrors.aliyun.com/debian-security/ bullseye-security main
deb-src https://mirrors.aliyun.com/debian-security/ bullseye-security main
deb https://mirrors.aliyun.com/debian/ bullseye-updates main non-free contrib
deb-src https://mirrors.aliyun.com/debian/ bullseye-updates main non-free contrib
deb https://mirrors.aliyun.com/debian/ bullseye-backports main non-free contrib
deb-src https://mirrors.aliyun.com/debian/ bullseye-backports main non-free contrib
# /etc/apt/sources.list.d 替换下面的镜像
deb http://mirrors.aliyun.com/raspberrypi/ buster main ui
之后 sudo apt update,sudo apt upgrade就没有问题。
-------------------------------------------遇到问题-------------------------------------
这里我照常在网上下载miniconda并装入树莓派,以为就能用,没有多想嵌入式操作系统很多地方都不兼容这个大问题!结果就出现问题:
参考博客链接: https://blog.csdn.net/IT_lesliewu/article/details/124893143
发现是因为树莓派不能兼容高版本的miniconda,选用4.9.2及以下即可。
-------------------------------------------解决办法-------------------------------------
下载
wget https://repo.anaconda.com/miniconda/Miniconda3-py37_4.9.2-Linux-aarch64.sh
安装
bash Miniconda3-py37_4.9.2-Linux-aarch64.sh
后面一直回车,需要输入yes就输入yes,然后等待安装完毕。
这一块是最神奇的地方,且听我慢慢安装,慢慢道来。
如往常一样,开启新的虚拟环境,并切换过去。(我也尝试了python3.7,发现都可以)
conda create -n new python=3.9
conda activate new
-------------------------------------------遇到问题-------------------------------------
这样安装好的虚拟环境的pip是不能用的,不管是pip install 还是pip -V,整个pip不能用,也是如下图:
我搜集了大量的内容,加上我自己的经验,以及我观察到的现象:猜测可能是pip版本问题。因为上面的命令默认安装的是pip的最新版,在“new”环境下pip无法使用,但是且回到“base”下pip是正常的。为了验证猜想,来看看两个环境下的pip版本
new(默认安装的最新版pip):
base:
然后我使用如下命令来指定pip版本:
conda create -n new python=3.9 pip=21.0.1
在我以为大功告成了,奇怪的事情发生,新环境的pip依旧不能用,还是和上面一样的错误。
-------------------------------------------解决办法-------------------------------------
接着继续搜集资料呗,这篇博客给我了启示:
链接: https://blog.csdn.net/weixin_43710676/article/details/129222042
我把~/miniconda3/lib/libcrypto.so.1.1 替换~/miniconda3/envs/new/lib/libcrypto.so.1.1 解决问题
使用
pip -V
查看版本,发现pip是最新版,没有因为替换而改变,但是能用了,很奇怪。
我不清楚原因,不过可以肯定的是,安装新环境的时候肯定是lib下的某些文件出现了问题,有兴趣的可以自己去对比看看 ~/miniconda3/lib ~/miniconda3/envs/new/lib这两个文件夹下的文件,虽然名字相同,但是有些大小却不一样,说明不是相同文件。
-------------------------------------------遇到问题-------------------------------------
这里会出现的问题在于直接用官方代码里的requirements.txt文件是不行的,python导入包的时候会依旧会出现 Illegal instruction 的问题。
-------------------------------------------解决办法-------------------------------------
原因是有些包的版本高,不兼容树莓派系统。解决办法就是改写requirements.txt,指定依赖的版本,这里是我改写的:
# YOLOv5 requirements # Usage: pip install -r requirements.txt # Base ---------------------------------------- matplotlib==3.7.1 pyserial==3.5 numpy==1.22.3 opencv-python==4.7.0.72 Pillow==9.2.0 PyYAML==6.0 requests>=2.23.0 scipy>=1.4.1 torch==1.12.0 # see https://pytorch.org/get-started/locally/ (recommended) torchvision==0.13.0 tqdm>=4.64.0 # pyrealsense2 protobuf<=3.20.1 # https://github.com/ultralytics/yolov5/issues/8012 # Logging ------------------------------------- # tensorboard>=2.4.1 # wandb # clearml # Plotting ------------------------------------ pandas>=1.1.4 seaborn>=0.11.0 # Export -------------------------------------- # coremltools>=6.0 # CoreML export onnx==1.12.0 # ONNX export onnxruntime==1.13.1 # onnx-simplifier>=0.4.1 # ONNX simplifier # nvidia-pyindex # TensorRT export # nvidia-tensorrt # TensorRT export # scikit-learn<=1.1.2 # CoreML quantization # tensorflow>=2.4.1 # TF exports (-cpu, -aarch64, -macos) # tensorflowjs>=3.9.0 # TF.js export # openvino-dev # OpenVINO export # Deploy -------------------------------------- # tritonclient[all]~=2.24.0 # Extras -------------------------------------- ipython # interactive notebook psutil # system utilization thop>=0.1.1 # FLOPs computation # mss # screenshots # albumentations>=1.0.3 # pycocotools>=2.0 # COCO mAP # roboflow
如果自己的代码还不能跑,大部分就是依赖没安装完整,缺什么安装就行,如果出现Illegal instruction的问题,就降低安装依赖的版本。
还在解决上面不清楚原因的问题,未完待续。。。。。。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。