在运行相关代码时产生报错:
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
ubuntu下运行python提示: no module named pip_n_fly的博客-CSDN博客
参考文档
[1] python:模块" yaml"没有属性" FullLoader"
[2] Pip无法卸载某些包:Cannot uninstall 'PyYAML'.
[3] No module named yaml
本文转载自:https://blog.csdn.net/qq_35756383/article/details/109135720