You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

导入Python库时出现'utf-8' codec can't decode byte 0x9c报错如何解决?

问题复现

执行以下导入代码时触发编码报错:

from sklearn.model_selection import train_test_split
from nltk.tokenize import word_tokenize

完整报错信息:

'utf-8' codec can't decode byte 0x9c in position 3057: invalid start byte


错误原因排查

  • 第三方包安装文件损坏:下载安装过程中网络波动、中断,导致包的源码或元数据文件出现损坏字节,加载时无法用utf-8正常解码。
  • 系统默认编码不匹配:Windows系统默认编码多为GBK/GB2312,Python读取包配置文件时默认调用系统编码,和utf-8编码的包文件产生冲突。
  • 缓存文件损坏:之前卸载/更新包时残留了不完整的__pycache__缓存文件,导入时优先读取损坏的缓存触发报错。

可行解决办法

  • 重装损坏的第三方包
    先执行卸载命令:
    pip uninstall scikit-learn nltk -y
    再重新安装,可使用国内合规镜像源加速,避免下载文件损坏:
    pip install scikit-learn nltk
  • 强制指定Python使用UTF-8编码
    Python2环境可在导入代码顶部添加:
    import sys
    reload(sys)
    sys.setdefaultencoding('utf-8')
    
    Python3环境可在运行脚本前设置环境变量:
    Windows CMD执行:set PYTHONUTF8=1
    Linux/macOS终端执行:export PYTHONUTF8=1
  • 清除残留缓存
    找到Python环境的site-packages目录,删除scikit_learn、nltk对应的文件夹以及所有__pycache__目录后重新安装包。
  • 调整系统区域编码(Windows专属)
    进入「控制面板→区域→管理→更改系统区域设置」,勾选「Beta版:使用Unicode UTF-8提供全球语言支持」,重启设备后重试。

内容的提问来源于stack exchange,提问作者Prayag Sheth

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 19:36:03