labelme UnicodeDecodeError: ‘gbk‘ codec can‘t decode byte 0xaf in position 227: illegal mult_file "c:\rgzn\labelme-main\setup.py", line 91, in -程序员宅基地

技术标签: python  UnicodeDecode  labelme  Error  

问题

在win10中直接安装labelme(pip install labelme),然后运行labelme,结果报错:UnicodeDecodeError: ‘gbk’ codec can’t decode byte 0xaf in position 227: illegal multibyte sequence.

第一眼就感觉是编码问题,于是在github上面下载源码,准备在本地运行、调试,下载下来后,果然也报这个错误,下面是报错信息。

[INFO   ] __init__:get_config:71 - Loading config file from:C:\Users\xxx\.labelmerc
Traceback (most recent call last):
  File .... line 191, in <module>
    main()
  File ...., line 145, in main
    config = get_config(config_file_or_yaml, config_from_args)
  File "...\labelme-master\labelme\config\__init__.py", line 73, in get_config
    config_from_yaml = yaml.safe_load(f)
  File "D:\Program Files\Anaconda3\envs\py37\lib\site-packages\yaml\__init__.py", line 162, in safe_load
    return load(stream, SafeLoader)
  File "D:\Program Files\Anaconda3\envs\py37\lib\site-packages\yaml\__init__.py", line 112, in load
    loader = Loader(stream)
  File "D:\Program Files\Anaconda3\envs\py37\lib\site-packages\yaml\loader.py", line 34, in __init__
    Reader.__init__(self, stream)
  File "D:\Program Files\Anaconda3\envs\py37\lib\site-packages\yaml\reader.py", line 85, in __init__
    self.determine_encoding()
  File "D:\Program Files\Anaconda3\envs\py37\lib\site-packages\yaml\reader.py", line 124, in determine_encoding
    self.update_raw()
  File "D:\Program Files\Anaconda3\envs\py37\lib\site-packages\yaml\reader.py", line 178, in update_raw
    data = self.stream.read(size)
UnicodeDecodeError: 'gbk' codec can't decode byte 0xaf in position 227: illegal multibyte sequence

Process finished with exit code 1

分析问题

根据提示,程序在加载这个C:\Users\xxx.labelmerc (请替换成自己的路径)文件时报错。部分文件如下:

flags: null
label_flags: null
labels: null
file_search: null
sort_labels: true
# 可控制该标注模式是否可用
validate_label: null

可以看到里面有中文。

解决方案

根据提示,可以发现是在读取配置信息时报错,所以找到config = get_config(config_file_or_yaml, config_from_args),点击get_config函数,修改里面

with open(config_from_yaml) as f:

改为:

with open(config_from_yaml, encoding='utf-8') as f:

以utf-8编码的形式读入该文件就不会报错了

        if not isinstance(config_from_yaml, dict):
            with open(config_from_yaml, encoding='utf-8') as f:
                logger.info(
                    "Loading config file from: {}".format(config_from_yaml)
                )
                config_from_yaml = yaml.safe_load(f)
        update_dict(
            config, config_from_yaml, validate_item=validate_config_item
        )
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/zhang_cherry/article/details/121142099

智能推荐

通过Llamaindex分析用户舆情信息技术调研_get_response_synthesizer-程序员宅基地

文章浏览阅读230次。通过Llamaindex分析用户舆情信息技术调研_get_response_synthesizer

redis6.2 使用 TLS 的部署(三种高可用模式)_redis 6.2版本启用tls认证-程序员宅基地

文章浏览阅读3.5k次。redis6.2 使用 TLS 的部署"三种高可用模式"安装redis6.2 并启用TLS加密安装创建TLS证书编写配置文件systemd管理测试连接redis 主从 配置 tls安装拷贝master 证书 到 slave编写配置文件systemd管理验证主从服务sentinel 哨兵服务创建目录、配置文件systemd管理查看sentinel 状态redis cluster 分片集群TLS安装规划目录及证书编写配置文件创建cluster 集群验证cluster 集群安装redis6.2 并启用TLS加密_redis 6.2版本启用tls认证

Sentinel-2波段合成_sentinel2 数据波段合成-程序员宅基地

文章浏览阅读378次。在上一篇博客中下载了Sentinel-2数据,他有13个波段的.jp2文件,下面选取需要使用的波段进行合成。导入了B2(蓝色)、B3(绿色)、B4(红色)、B8(近红外),直接存为TIFF会丢失坐标信息。最后将合成好的影像存为TIFF。得到下面这些.dat格式。_sentinel2 数据波段合成

【图像融合】基于错误纹理消除和显著特征检测的多模态脑图像融合神经科学前沿2023文献matlab复现-程序员宅基地

文章浏览阅读516次,点赞7次,收藏10次。多模态脑影像融合旨在将来自不同成像方式的脑影像数据进行融合,以获得更全面的信息。然而,由于不同成像方式的图像特性差异较大,直接融合会导致误差纹理和显著特征丢失等问题。本文提出了一种基于误差纹理消除和显著特征检测的多模态脑影像融合方法。该方法首先通过误差纹理消除算法去除融合图像中的误差纹理,然后通过显著特征检测算法提取融合图像中的显著特征,最后将显著特征融合到误差纹理消除后的图像中,得到最终的融合图像。实验结果表明,该方法可以有效消除误差纹理,保留显著特征,获得高质量的融合图像。引言。

python bar3d color_三维散点图colorbar matplotlib Python-程序员宅基地

文章浏览阅读1k次。我无法将颜色条添加到我的三维散点图中,它的颜色范围是根据bifurWidth的值在min和{}之间。我尝试过stackoverflow上显示的各种尝试,但都没有成功。任何帮助都将是非常感谢,因为我在这方面是一个重大的损失。在我最近的一次尝试是从下面的代码中散列出来的。在我的代码:from glob import globfrom pylab import *import numpy as npfr..._bar3d 好看的颜色

7.CSS-交集选择器、并集选择器、兄弟选择器_交集选择器和并集选择器使用方式-程序员宅基地

文章浏览阅读1.7k次。文章目录*交集选择器作用格式注意点并集选择器作用格式注意点相邻兄弟选择器作用格式注意点通用兄弟选择器作用格式注意点*交集选择器作用给所有选择器选中的标签中,相交的那部分设置属性。格式选择器1 选择器2{ 属性:值;}注意点1.选择器和选择器之间没有任何连接符号;2.选择器可以使用标签名称/id名称/class名称;3.仅了解。并集选择器作用给所有选择器选中的标签设置属性。格式选择器1,选择器2{属性:值;}注意点1.并集选择器必须使用,来连接;2.选择器可以使用_交集选择器和并集选择器使用方式

随便推点

XHTML_xhtml 中正确标记折行-程序员宅基地

文章浏览阅读2.2k次。XHTML 是以 XML 格式编写的 HTML。什么是 XHTML? XHTML 指的是可扩展超文本标记语言 XHTML 与 HTML 4.01 几乎是相同的 XHTML 是更严格更纯净的 HTML 版本 XHTML 是以 XML 应用的方式定义的 HTML XHTML 是 2001 年 1 月发布的 W3C 推荐标准 XHTML 得到所有主流浏览器的..._xhtml 中正确标记折行

计算机图形图像处理在教学中的应用,计算机图形图像处理案例教学法运用-程序员宅基地

文章浏览阅读534次。摘要:笔者根据计算机图形图像处理课程与中职学生学习的特点,分析了目前中职学校计算图形图像处理课程教学中存在的问题,针对如何提高中职学生对计算机图形图像处理课程的学习兴趣和解决实际问题的能力,提出了案例教学法在该课程中的具体实施办法,并对其实践进行了进一步的讨论。关键词:计算机图形图像处理;案例教学;中职当今世界电子商务发展迅速,计算机平面设计这门技术在很多领域都得到广泛应用。《Photoshop图..._图像分类在教育中的应用

python资源文件嵌入exe_pyinstaller将资源文件打包进exe中-程序员宅基地

文章浏览阅读921次。在网上看了很多博客,终于找到了符合自己智商可理解的打包资源文件方法,现引用如下https://www.cnblogs.com/darcymei/p/9397173.htmlhttps://blog.csdn.net/sinat_27382047/article/details/81304065"""终于把资源文件加载进去了,就是当exe文件移植后,它运行的时候会产生一个临时文件夹,把资源文件存储到..._pyinstaller如何将_internal添加进exe

H3C模拟器配置vlan-程序员宅基地

文章浏览阅读3.3k次,点赞4次,收藏7次。Valn 11组网需求• 交换机GE_2上的VLAN 5 和VLAN 10 为Primary VLAN,其上层端口GigabitEthernet1/0/1需要允许VLAN 5 和VLAN 10 的报文携带VLAN Tag 通过。• 交换机GE_2 的下行端口GigabitEthernet1/0/2 允许Secondary VLAN 2 通过,GigabitEthernet1/0/3 允许Sec..._新华3模拟器vlan配置

img撑满全屏的方法(img非背景图)_img 铺满-程序员宅基地

文章浏览阅读4.7w次,点赞8次,收藏15次。我有一个模板,想按常规做一个div里面放置一个img图片,并且让图片铺满容器,自适应容器大小。HTML结构代码如下(在这个盒模型上,我已经放置了一些不重要的样式)。div style="height:270px;width:400px;border:2px black solid;"> a href="http://www.paipk.com">img src="..." alt="拍_img 铺满

UnicodeDecodeError: ‘utf-8‘ codec can‘t decode byte 0xb0 in position 5: invalid start byte_ebpf bcc unicodedecodeerror: 'utf-8' codec can't d-程序员宅基地

文章浏览阅读947次。UnicodeDecodeError: 'gbk' codec can't decode byte 0xfa in position 4669: illegal multibyte sequenceUnicodeDecodeError: 'utf-8' codec can't decode byte 0xb0 in position 5: invalid start bytewith open('进线汇总20201211.csv',encoding='utf8') as f: t = f._ebpf bcc unicodedecodeerror: 'utf-8' codec can't decode byte 0xb0 in positio