yolov5中运行detect.py一直报错“no module named torch“,尝试各种办法解决不了怎么办

        大多数在ubuntu配置yolov5的教程中,都需要安装anaconda,然后再使用conda create -n pytorch1.7 python=3.8的类似命令为pytorch创建一个anaconda虚拟环境,然后在pytorch1.7 的环境下安装pytorch。

        但是,我按照这种普遍的方法,并尝试了网上各种解决"no module named torch"的方法仍然解决不了这个问题。感觉问题是出在为pytorch创建一个anaconda虚拟环境时,需要指定python的版本python=3.8,指定python版本主要根据自己现在linux系统中的版本,例如使用python -V(或python3 -V,因为unbuntu20.04以上的版本都是python3,所以python -V在unbuntu20.04无用),就可以查看当前的python版本。

        我的ubuntu20.04上的python版本是python3.8.10。但是我在anaconda环境下执行conda create -n pytorch1.7 python=3.8后,接着在pytorch1.7环境下,我的python版本是python3.8.3。也就是说,在anaconda环境下安装的pytorch,python版本(python3.8.3)和原始linux环境下的python版本(python3.8.10)是对不上的,所以哪怕在命令行输入下列命令验证pytorch确实成功安装,也依旧会出现"no module named torch"。

        还有些网上的解决教程说是在VScode或者是Pycharm中解释器选择不对导致的,我也尝试解决过,没有成功。因为我在终端的pytorch1.7环境下,也还是出现此类错误。

import torch
print(torch.__version__)
print(torch.cuda.is_available())#如果你安装的pytorch是基于cuda,用这条命令检验,成功安装输出True
print(torch.cpu.is_available())#如果你安装的pytorch是基于cpu,用这条命令检验,成功安装输出True

        最后我推测,由于在anaconda环境下安装的pytorch,python版本(python3.8.3)和原始linux环境下的python版本(python3.8.10)是对不上,导致系统运行时不知道要选哪个,我也搞不懂安装anaconda环境的意义是什么?

        于是,我就卸载原有的anaconda环境,打算不借助anaconda直接使用pip的方式安装pytorch。

        直接pytorch官网:Start Locally | PyTorch上根据自己的系统选择,我不选择CUDA的,看网上资料安装CUDA首先需要下载好你电脑对应的NVIDIA显卡驱动。我的电脑的显卡是AMD,非NVIDIA,弄这个有些麻烦,所以直接使用电脑CPU,并利用pip直接下载。

        执行完下面的命令:

pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cpu 

        命令后,再次运行detect.py,终于没有出现"no module named torch"报错了,完美!!!

        但是,会出现一个小错误是说找不到CUDA什么的,不用担心。找到torch_utils.py文件,我的文件是在/home/zlt/ros_yolov5_ws/src/yolov5_ros/src/yolov5/utils/torch_utils.py。注释掉图片中的两行就可以了。后面如果还出现一些警告什么的,主要是一些库之类的版本要大于等于多少,就直接上网搜对应的安装命令即可。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值