无法从 Ruamel.yaml 导入 YAML
Cannot import YAML from Ruamel.yaml
我正在尝试使用 ruamel.yaml 并直接使用 ruamel 文档中的这段代码,但我收到错误:
回溯(最后一次调用):
文件 "ruameltest.py",第 12 行,位于
yaml = YAML()
NameError:名称 'YAML' 未定义
我正在使用 Linux (RHEL)
Python 3.4.9
rpm 包:python34-ruamel-yaml-0.13.14-1.el7.x86_64
我该如何解决这个问题?
import sys
from ruamel.yaml import YAML
inp = """\
# example
name:
# details
family: Smith # very common
given: Alice # one of the siblings
"""
yaml = YAML()
code = yaml.load(inp)
code['name']['given'] = 'Bob'
yaml.dump(code, sys.stdout)
您的系统安装的 ruamel.yaml 版本严重过时,现在(2019 年 5 月)为 0.15.96。 API 介绍了 YAML
class,你的程序找不到是两年前介绍的
此外,您的 Python (3.4) 自 2019 年 3 月 18 日以来一直 end-of-life。
您可以按照旧的 PyYAML,API:
import sys
from ruamel.yaml import RoundTripLoader, RoundTripDumper, load, dump
inp = """\
# example
name:
# details
family: Smith # very common
given: Alice # one of the siblings
"""
data = load(inp, Loader=RoundTripLoader)
data['name']['given'] = 'Bob'
dump(data, sys.stdout, Dumper=RoundTripDumper)
给出:
# example
name:
# details
family: Smith # very common
given: Bob # one of the siblings
请注意,您从 YAML 而非 code.
加载 data
当然最好使用 ruamel.yaml
的 up-to-date 版本和维护的
Python 的版本。如果您无法安装较新的 Python 版本,或无法自行编译,您
仍然可以安装更新版本的 ruamel.yaml
:
$ python3 -m venv ~/venv/yamltest
$ source ~/venv/yamltest/bin/activate
$ pip install -U pip
$ pip install 'ruamel.yaml<=0.15.94'
然后您应该可以按原样使用您的程序了。
较新版本,0.15.94后发布,不包含.whl
个文件
对于 Python 3.4,这些版本可能仍然有效,但您可能
需要安装编译器才能使用 C 扩展,并且
如果你这样做,你应该下载并安装 Python 3.7
我正在尝试使用 ruamel.yaml 并直接使用 ruamel 文档中的这段代码,但我收到错误:
回溯(最后一次调用): 文件 "ruameltest.py",第 12 行,位于 yaml = YAML() NameError:名称 'YAML' 未定义
我正在使用 Linux (RHEL)
Python 3.4.9
rpm 包:python34-ruamel-yaml-0.13.14-1.el7.x86_64
我该如何解决这个问题?
import sys
from ruamel.yaml import YAML
inp = """\
# example
name:
# details
family: Smith # very common
given: Alice # one of the siblings
"""
yaml = YAML()
code = yaml.load(inp)
code['name']['given'] = 'Bob'
yaml.dump(code, sys.stdout)
您的系统安装的 ruamel.yaml 版本严重过时,现在(2019 年 5 月)为 0.15.96。 API 介绍了 YAML
class,你的程序找不到是两年前介绍的
此外,您的 Python (3.4) 自 2019 年 3 月 18 日以来一直 end-of-life。
您可以按照旧的 PyYAML,API:
import sys
from ruamel.yaml import RoundTripLoader, RoundTripDumper, load, dump
inp = """\
# example
name:
# details
family: Smith # very common
given: Alice # one of the siblings
"""
data = load(inp, Loader=RoundTripLoader)
data['name']['given'] = 'Bob'
dump(data, sys.stdout, Dumper=RoundTripDumper)
给出:
# example
name:
# details
family: Smith # very common
given: Bob # one of the siblings
请注意,您从 YAML 而非 code.
加载 data当然最好使用 ruamel.yaml
的 up-to-date 版本和维护的
Python 的版本。如果您无法安装较新的 Python 版本,或无法自行编译,您
仍然可以安装更新版本的 ruamel.yaml
:
$ python3 -m venv ~/venv/yamltest
$ source ~/venv/yamltest/bin/activate
$ pip install -U pip
$ pip install 'ruamel.yaml<=0.15.94'
然后您应该可以按原样使用您的程序了。
较新版本,0.15.94后发布,不包含.whl
个文件
对于 Python 3.4,这些版本可能仍然有效,但您可能
需要安装编译器才能使用 C 扩展,并且
如果你这样做,你应该下载并安装 Python 3.7