文章目录
前言
很久之前安装了anaconda(蛮旧的版本)和python3.10。然后在使用anaconda建立虚拟环境的时候遇到了一系列的问题:
①刚开始使用anaconda建立的环境是3.7,然后安装import cv的时候不知道是不是我系统的环境变量设置的python3.10,终端pip老是安装到python3.10的文件夹下面,压根就不pip到anaconda建立的虚拟环境,而且旧版本的anaconda也蛮多bug的。
②在上一个问题的基础上,东搞西搞好不容易跑通了YOLOv5,安装labelImg的时候显示python3.10不!支!持!PyQt5!
好好好,我直接把python3.10和anaconda旧版本直接全都卸载了,搜罗了很多知识,原来安装了anaconda就不用安装python了,故打算重新安装anaconda
ps:python的卸载很方便,网上很多教程可以参考,由于卸载python很顺利丝滑,此处就不进行记录。
1、卸载旧版本anaconda遇到的问题
1.1问题描述
按照网上的教程说的是安装自带的卸载工具
conda install anaconda-clean
然后,给我报错了·汗颜
报错:Solving environment:failed InvalidVersionSpecError:Invalid spec:=2.7
搜罗了很多方法,说更新anaconda版本,因为版本太旧,使用update相关指令更新anaconda版本仍然报相同的错误。继续搜罗了很久,终于解决了:
1.2解决方法
此方法转载自麦芽907的文章:Anaconda安装clean卸载工具失败
报错和此文一致
我还将anaconda旧版本所在文件夹都删除了以及环境变量与anaconda相关的都删除干净。
此处出自YuPersist的文章:Anaconda的卸载及安装(图文详解)
至此,anaconda卸载完成。
2、重新安装anaconda
我重新安装的是Anaconda3-2020.11-Windows-x86_64版本,参考的是zk小帅哥的这篇文章 → \to →anaconda+pytorch+yolov5保姆级攻略,个人比较强推的,我后面跟着一步步配置,最后跑通了。
2.1下载anaconda
在清华源:https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/,下载的Anaconda3-2020.11-Windows-x86_64版本。
下载好以后一路next安装即可,安装路径不要有中文。
2.2配置系统环境变量
2.3检查是否安装成功
3、安装pytorch虚拟环境
3.1利用anaconda构建名为pytorch的虚拟环境
使用命令进行pytorch的虚拟环境安装
conda create -n pytorch python=3.8
遇到的问题:某个下载网速太慢导致未下载成功,可以换个时间段进行下载。
进入创建好的ptyorch虚拟环境
conda activate pytorch
3.2下载pytorch
进入官网https://pytorch.org/,选择相应的版本复制命令进行安装。
import torch后下一行显示>>>则证明pytorch虚拟环境搭建完成
然后测试cuda
因为我安装的是cpu
故显示false为正确的
4、YOLOv5安装
去GitHub下载YOLOv5源码压缩包和相关的权重文件,我下载的是预训练好的yolov5s.pt文件。
使用pycharm打开解压后的文件夹,然后点击右下角选择已经安装好pytorch的虚拟环境。
然后在下方选择终端,输入
pip install -r requirements.txt
4.1报错gbk
滑倒最后一行看到报错:UnicodeDecodeError:’ gbk’ codec can’t decode byte 0x98 in position 1051: illegal multibyte sequence
经过查询得到解决方法
4.2解决方法:
一般是因为读取文件出现编码问题导致没法读取文件,因此可以在报错里面找到出现read(filename)或者open(filename)之类的字段的代码文件中进行修改。此处是在dist.py中需要读取文件,然后出现报错。
亲测可以解决的方法出自初学者5213的文章:UnicodeDecodeError: ‘gbk‘ codec can‘t decode byte 0x98 in position 1130: illegal multibyte sequence
4.3再次运行安装依赖报错
根据提示在install requirements的命令后面添加了–use-feature=2020-resolver
解决结果:
4.4运行detect.py报错ModuleNotFoundError: No module named ‘ultralytics‘+
解决方法参考的是陈子迩的文章YOLOv8常见报错集合(ModuleNotFoundError、NameError、KeyError、nan值及map全为0、 CUDA out of memory、[WinError 145)
在detect.py的开头加上
import sys
sys.path.append("路径")
# 即 ultralytics文件夹 所在绝对路径
重新运行后
至此,YOLOv5环境搭建完成。
5、labelImg工具的安装
我是单独创建的一个虚拟环境labelImg
进入anaconda prompt
conda create -n labelImg python=3.8
激活进入虚拟环境
conda activate labelImg
安装库
pip install pyqt5
安装labelimg
pip install labelImg
6、批量图片重命名
此处贴一个批量命名的代码,因为自己的数据集是进行筛选过的,故名字有些乱,需要进行重命名
# 批量修改文件名,默认操作为将图片按1,2,3,,,顺序重命名
import os
path_in = "F:/dataset/tomato/test" # 待批量重命名的文件夹
class_name = ".jpg" # 重命名后的文件名后缀
file_in = os.listdir(path_in) # 返回文件夹包含的所有文件名
num_file_in = len(file_in) # 获取文件数目
print(file_in, num_file_in) # 输出修改前的文件名
for i in range(0, num_file_in):
t = str(i + 181)
new_name = os.rename(path_in + "/" + file_in[i], path_in + "/tomato_" + t + class_name) # 重命名文件名
file_out = os.listdir(path_in)
print(file_out) # 输出修改后的结果
结束语
浅浅记录一下搭建YOLOv5项目所需要的环境、卸载旧版本anaconda、安装labelImg工具所遇到的一系列问题以及安装过程。