作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 pyyaml 开发一个 python 项目。我需要在基于 bitnami/minideb:jessie 的 Docker 容器中运行它。 Python 版本为 2.7.9。原始代码使用的是 CLoader,我目前无法更改它。CLoader 无法加载但 Loader 正常的任何原因?
>>> import yaml
>>> yaml.__version__
'3.12'
>>> from yaml import Loader
>>> from yaml import CLoader
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: cannot import name CLoader
>>>
我不知道我在这里遗漏了什么。有什么想法吗?
然后从 Docker 镜像 python:2.7.9 运行它不会引发任何错误:
$ docker run -ti python:2.7.9 bash
#/ python
>>> from yaml import CLoader
>>> from yaml import Loader
>>>
最佳答案
默认情况下,setup.py脚本会检查是否安装了LibYAML如果是,则构建并安装 LibYAML 绑定(bind)。
这是编译和安装 CLoader 的最低要求。
FROM ubuntu:20.04
RUN apt-get update && apt-get install -y \
python3 python3-dev python3-pip gcc libyaml-dev
RUN pip3 install pyyaml
# verify
RUN python3 -c "import yaml; yaml.CLoader"
关于python - 无法使用pyyaml加载CLoader,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47715566/
当使用 CLoader 作为 yaml.load 的加载器时,它不会处理我的 json 中的 unicode。但是,当我使用默认加载器时,json 加载正常。 我可以通过捕获异常并在没有 CLoade
有没有办法让 PyYaml 的默认加载器成为 CLoader。所以不必这样做 yaml.load(f, Loader=yaml.CLoader) 它只是默认为 CLoader,所以我可以这样做: ya
我是一名优秀的程序员,十分优秀!