欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

module ‘yaml‘ has no attribute ‘FullLoader‘

程序员文章站 2024-03-21 23:44:46
...

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

module 'yaml' has no attribute 'FullLoader'

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

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

python3
import yaml
yaml.__version__

module ‘yaml‘ has no attribute ‘FullLoader‘ (这里忘记截图了,图文可能不符)

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

pip3 uninstall pyyaml 

module ‘yaml‘ has no attribute ‘FullLoader‘

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

module ‘yaml‘ has no attribute ‘FullLoader‘

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

module ‘yaml‘ has no attribute ‘FullLoader‘

终于卸载成功了。

 

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

pip3 install pyyaml

module ‘yaml‘ has no attribute ‘FullLoader‘

在python里 import yaml 时报错。

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

sudo apt-get install python-yaml 

 

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

module ‘yaml‘ has no attribute ‘FullLoader‘

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

python3 -m pip install pyyaml 

module ‘yaml‘ has no attribute ‘FullLoader‘

再次测试:

module ‘yaml‘ has no attribute ‘FullLoader‘

成功!

 

总结

报错 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

相关标签: 问题汇总