module ‘yaml‘ has no attribute ‘FullLoader‘

在运行相关代码时产生报错:

module 'yaml' has no attribute 'FullLoader'

经了解,FullLoader 属性是在pyyaml5.1及以上版本中才有的[1]

显示我已安装了5.3.1的版本,但是进入python解释器后发现是3.12的:

python3
import yaml
yaml.__version__

 (这里忘记截图了,图文可能不符)

此时卸载可以把5.3.1的卸载了,但是发现3.12版本的卸载不了:

pip3 uninstall pyyaml 

按照上面说的,退出虚拟环境,重新卸载,还是不成功:

于是到 /usr/lib/python3/dist-packages 路径下,删除 PyYAML-3.12.egg-info 和 yaml 文件夹,再次卸载[2]

终于卸载成功了。

 

重新安装pyyaml,又出现了问题:

pip3 install pyyaml

在python里 import yaml 时报错。

按照[3]的评论说的,执行下面代码也没用:

sudo apt-get install python-yaml 

 

因为我的python3对应的是3.6的版本,在 /usr/lib/python3.6/site-packages 路径下查看发现没有yaml文件夹:

执行下述命令后终于有了:

python3 -m pip install pyyaml 

再次测试:

成功!

 

总结

报错 module 'yaml' has no attribute 'FullLoader' 可能的原因有:

1. 未安装 pyyaml

pip3 install pyyaml

2. 已存在pyyaml,且版本低于5.1

查看 yaml 版本,并卸载老版本:

python3
import yaml
yaml.__version__

pip3 uninstall pyyaml
pip3 install pyyaml

3. 存在多个不同版本pyyaml

如果能卸载就全部卸载再重新安装最新版本,不能卸载就找到对应安装路径删除以下2个文件,之后再卸载:

PyYAML-x.xx.egg-info
yaml 

如果重新安装时安装不上可以换成:

python3 -m pip install pyyaml 

 

参考文档

[1] python:模块" yaml"没有属性" FullLoader"

[2] Pip无法卸载某些包:Cannot uninstall 'PyYAML'.
[3] No module named yaml

  • 14
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值