'webcolors'没有属性'css3_hex_to_names'

问题描述 投票:0回答:2

我正在使用这个功能

def closest_colour(requested_colour):
    min_colours = {}
    for key, name in webcolors.css3_hex_to_names.items():
        r_c, g_c, b_c = webcolors.hex_to_rgb(key)
        rd = (r_c - requested_colour[0]) ** 2
        gd = (g_c - requested_colour[1]) ** 2
        bd = (b_c - requested_colour[2]) ** 2
        min_colours[(rd + gd + bd)] = name
    return min_colours[min(min_colours.keys())]

我正在使用 Webcolor 1.11.1 Python 3.8.8,并且我收到此错误消息

for key, name in webcolors.css21_hex_to_names.items():

AttributeError:模块“webcolors”没有属性“css21_hex_to_names”

python-3.x
2个回答
10
投票

幸运的是,我找到了解决方案。 我使用了这个 webcolors.CSS3_HEX_TO_NAMES 而不是 webcolors.css21_hex_to_names。 CSS3_HEX_TO_NAMES 大写字母


0
投票

我在 Python 3.10 中使用

webcolors
版本 ==
'24.8.0'
,它发生了更改,并且
CSS3_HEX_TO_NAMES
不再可访问。

这是更新的代码,将

CSS3_HEX_TO_NAMES
替换为
webcolors.names("css3")

import webcolors

def closest_colour(requested_colour):
    min_colours = {}
    for name in webcolors.names("css3"):
        r_c, g_c, b_c = webcolors.name_to_rgb(name)
        rd = (r_c - requested_colour[0]) ** 2
        gd = (g_c - requested_colour[1]) ** 2
        bd = (b_c - requested_colour[2]) ** 2
        min_colours[(rd + gd + bd)] = name
    return min_colours[min(min_colours.keys())]
© www.soinside.com 2019 - 2024. All rights reserved.