我正在使用 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/