__main__.py:AttributeError: module 'labelme.utils' has no attribute 'draw_label'

实现labelme批量json_to_dataset方法中

https://blog.csdn.net/yql_617540298/article/details/81110685#comments

以及后续针对其中的问题:

AttributeError: module 'labelme.utils' has no attribute 'draw_label'

https://blog.csdn.net/yql_617540298/article/details/104182777#comments

我看到有朋友反馈,依旧出现如下问题:

File "C:\Users\zhang\Anaconda3\Scripts\labelme_json_to_dataset.exe\__main__.py", line 9, in <module> File "c:\users\zhang\anaconda3\lib\site-packages\labelme\cli\json_to_dataset.py", line 66, in main lbl_viz = utils.draw_label(lbl, img, captions) AttributeError: module 'labelme.utils' has no attribute 'draw_label' 

根据错误:

__main__.py文件中报错,而不是单纯的没有draw_label()方法。

参考链接:http://www.imooc.com/wenda/detail/581549

解释了什么是__main__.py文件。

所以该错误不是后续代码中出现的问题,有可能安装不同的版本,代码也是不同的,所以,检查一下labelme的版本号,

在cmd中,输入:

>>python
>>import labelme as lb
>>lb.__version__
>>

我安装的是3.3.1版本。 

我电脑上的Python是3.6.2版本。
所以如果不同版本,找不到draw_label()也很正常。

不用管之前的博客的代码,直接在安装好的labelme的代码里进行更改:

将labelme单张图片处理改为批量图片处理得基本原理就是增加批量的操作,那么直接在安装好的labelme自动生成的代码中更改就可以,其他在安装labelme后自动生成的代码都不要更改:

在json_to_dataset.py文件中,增加如下代码:(之前博客有写)

count = os.listdir(json_file) 
    for i in range(0, len(count)):
        path = os.path.join(json_file, count[i])
        if os.path.isfile(path):
            data = json.load(open(path))

然后将处理单张图片的代码全部写在for循环内即可。

或者,直接安装3.3.1版本的labelme也可以。

安装:https://blog.csdn.net/yql_617540298/article/details/81782827

希望可以帮助大家解决这个问题。

发布了111 篇原创文章 · 获赞 110 · 访问量 14万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章