说在前头
在配置YOLOv8环境的时候,安装依赖时会出现下图这个警告⬇️
这个保存应该是不影响正常依赖安装流程的,但是看的真的很烦,所以我想这里提供几个解决方案供各位伙计参考,不出意外的话后续版本的yolo也有这毛病()
分析问题
首先我们应该读懂它在讲什么。
这是原文:
WARNING: Ignore distutils configs in setup.cfg due to encoding errors.
我们带到百度翻译查查:
实际上这个警告说的很明白了,setup.cfg的编码有问题。国内默认使用GBK编码,但国际上一般使用UTF-8编码,这就是问题所在啦。我们打开这个文件一探究竟~
看右下角,这和咱猜测的一样!
解决问题
解决问题的方法总结下来就两大类:
1.解决问题本身
2.解决提出问题的
接下来我来介绍下几个解决问题的方法(认真!)。
修改Windows编码(不推荐)
既然时Windows提出了这个问题,我们把Windows解决了不就行了()
碎碎念
但是这个方法非常非常不推荐,这是一个玄学的解决方式,虽然能在我们日后写代码的时候能够一帆风顺,但是从GBK到UTF-8编码,会导致很多奇奇怪怪的问题,毕竟国内GBK编码都用了这么久了,很多软件是和GBK编码深度绑定的,切换编码毫无悬念地会导致软件出现异常。这个方法网上有,只能说害人不浅(),不过我这里也会以Windows 11为例详细的讲讲步骤,毕竟自己淋过雨,也想给别人泼盆水。
步骤
1.打开Windows设置, 点击“时间和语言”;
2.点击“语言和区域”;
3.点击“管理语言设置”,这时会弹出一个界面,长这样:
微软我*你*,说好的界面重做呢,都Win11了这个界面连图标都没变
4.点击“更改系统区域设置”,这时会弹出这个窗口:
5.勾选下面的“Beta版:使用 Unicode UTF-8 提供全球语言支持”,然后点击确定并重启电脑。接下来就可以正常的且愉快的使用电脑啦~
在这里我还是想唠叨几句,这个按钮实际上我印象中在小时候的WinXP上就见到了,你猜猜为什么到现在还是叫Beta版而不是其他的称谓或者变成系统默认编码()
当然,你也可以单独更换命令行的编码,具体过程不做描述,可以看看这篇:windows修改cmd命令行窗口UTF-8编码(临时、永久)_cmd utf-8-CSDN博客
请注意:就算是单独调整CMD的编码,也会有概率出现一些玄学问题,所以如果想调整编码的话建议只临时调整,这样重新打开CMD就又回变回GBK编码了。
更换Python版本
Python 3.10似乎解决了这个问题,可以试试。不过更换版本意味着要重新配环境,非常麻烦。如果已经用之前的版本写了好久代码的话就不推荐这个方法。
碎碎念
注意,目前Python 3.12应该是还不能玩YOLO的,版本号别挑太高。(写这句话的时候是2023.12.10,这句话具有时效性,日后一定会没问题的。)
Python(实际上不止这玩意)下载龟速可以去镜像站好好玩玩,我个人推荐清华大学的镜像站,不为别的,只是因为这是我离清华最近的一次了(哭),考不上,咱也能用用。
清华大学开源软件镜像站 | Tsinghua Open Source Mirror
修改源文件内容
众所周知,虽然GBK和UTF-8这俩是两个玩意,但是他们的英文字符是相通的,不会遇到啥问题。那既然会报编码错误,这就说明这里一定出现了不属于英文的字符串,我们打开文件来修改修改看看。
又打开了,又开始了
这里的引号很明显不是英文字符。当然,如果你的编辑器字体花里胡哨的话可能真的看不出来,也有可能编辑器会给你标出非ASCII字符让你清楚是啥情况。 我们把这些字符删掉或者自己换成英文字符就行,当然这里只是注释而已,有没有都完全无所谓的。你也可以直接全部删掉,体验一下删库跑人的快感。
修改源文件编码(最简单)
既然这个文件默认是UTF-8编码,而CMD又默认是GBK编码,要不一拍即合,把文件改成GBK编码就行了?事实证明确实有效()
各编译器修改编码的方式不同,如果不懂建议自己百度一下,有时候搜索引擎确实是个好东西,当然也有时候不是。