使用torchvision的RandAugment时遇KO_NAMES导入失败错误
解决torchvision.transforms.v2导入时的charset_normalizer依赖错误
问题复现
执行from torchvision.transforms import v2时,先后触发以下错误:
ModuleNotFoundError: No module named 'chardet'- 安装chardet后,出现
ImportError: cannot import name 'KO_NAMES' from 'charset_normalizer.constant'
解决方案
1. 锁定charset_normalizer兼容版本
KO_NAMES是charset_normalizer 2.x版本中的常量,3.x版本已移除,而torchvision v2依赖该旧版本常量。执行以下命令安装兼容版本:
pip install charset-normalizer==2.1.1
2. 匹配chardet版本避免冲突
部分场景下chardet新版本会和旧版charset_normalizer产生冲突,可指定兼容版本:
pip install chardet==5.2.0
3. 重新安装torchvision(可选)
若上述步骤无效,可能是torchvision安装不完整,重新安装对应版本:
# 先卸载 pip uninstall torchvision -y # 安装与torch匹配的版本,例如torch 2.0.0对应torchvision 0.15.1 pip install torchvision==0.15.1 --force-reinstall
4. 排查虚拟环境干扰(若使用)
如果使用虚拟环境,确保激活的是目标环境,避免全局包干扰。可执行以下命令查看当前环境的相关包版本:
pip list | grep -E "charset-normalizer|chardet|torchvision"
验证
重新执行from torchvision.transforms import v2,无报错则问题解决。
内容的提问来源于stack exchange,提问作者NaN_Plato
相关产品推荐
相关产品推荐

