pyYAML - 错误 - 属性错误:没有属性"加载"

ada*_*itz 0 python pyyaml

好吧,我正在玩pyYAML.我使用Windows安装程序安装了Python 2.7的版本.

它进口很好:

import yaml
Run Code Online (Sandbox Code Playgroud)

并且它不会抛出任何错误.

但是,如果我这样做:

import yaml

f = open("sets.yml")
dataMap = yaml.load(f)
f.close()

print dataMap
Run Code Online (Sandbox Code Playgroud)

它抛出一个属性错误,并说'module'对象没有属性'load'.

我尝试了转储,并得到了相同的东西.导入的内容也是如此:

from yaml import load
Run Code Online (Sandbox Code Playgroud)

有人有主意吗?

哦,而且,我认为这很奇怪 - 每当我运行脚本时,它就会创建一个.pyc.这是为什么?

小智 8

如果另一个名为yaml.py的文件位于sys.path之前,则在实际的PyYaml库之前,您将获取并导入该yaml.py文件.这包括您是否已将自己的文件命名为yaml.py.

你在目录中获得yaml.pyc的事实表明这正是你正在做的事情.您的import yaml语句正在您自己的yaml.py文件中加载,这会导致解释器将其编译为yaml.pyc以便更有效地运行.

重命名目录中的yaml.py文件.作为一般规则,不要将您正在使用的任何python文件命名为与您正在使用的任何现有python模块相同的名称.