“safe_load()“ has been removed, use yaml = YAML(typ=‘safe‘, pure=True) yaml.load(...)

报错信息:

“safe_load()” has been removed,
use yaml = YAML(typ=‘safe’, pure=True)
yaml.load(…)

2023-12-25更新:

最主要的问题还是包的版本太新了,降一下版本就好了
“safe_load()“ has been removed, use yaml = YAML(typ=‘safe‘, pure=True) yaml.load(...)_第1张图片
有这么多任君选择,当然也别选太老的版本= =
我是由0.18.5降到0.16.6就可以了


以下是之前的回答:

找到报错这个的文件,
我的是:

File "/home/zyc/anaconda3/envs/EVcouple/lib/python3.7/site-packages/evcouplings/utils/config.py", line xx
就是你调用safe_load()函数的那行

首先根据以上修改信息后,仍然报错,官方又提示说修改为:
“load()” has been removed,
use yaml = YAML(typ=‘rt’)
yaml.load(…)
按照以上提示修改之后,虽然不再报load的错误了,但是出现以下错误:

  File "/home/zyc/anaconda3/envs/EVcouple/lib/python3.7/site-packages/evcouplings/utils/config.py", line 15, in 
    yaml = YAML(typ='rt')
TypeError: 'module' object is not callable

原来是调用包的方法出错,参考:https://blog.csdn.net/a1034996/article/details/108105428
修改为:
yaml = YAML.YAML(typ=‘rt’)
就可以了不报错了

综上:
找到报错文件:
修改后调用代码为:

import ruamel.yaml as YAML

yaml = YAML.YAML(typ='rt')

以及相应调用safe_load的地方修改为:

 #修改前:
 return yaml.safe_load(config_str)
#修改后           
return yaml.load(config_str)

又是改BUG的一天。。。。。。

这样如果你下面还有地方调用yaml,会提示说没有xx attribute
修改办法是 把yaml改为调用的YAML, 名字跟这里相同(import ruamel.yaml as YAML)

你可能感兴趣的:(safe_load,yaml)