我使用的是Kubernetes清单构建器脚本,该脚本在以下位置找到:https://github.com/kubernetes-sigs/kubespray/blob/master/contrib/inventory_builder/inventory.py
在line 36
上,ruamel YML库是使用代码from ruamel.yaml import YAML
导入的。可以在以下位置找到该库:https://pypi.org/project/ruamel.yaml/
在OSX设备(Mojave 10.14.3
)上,如果运行pip list
,则可以清楚地看到ruamel.yaml
的最新版本:
如果我运行pip show ruamel.yaml
,则会得到以下输出:
我正在使用以下命令运行脚本:CONFIG_FILE=inventory/mycluster/hosts.ini python3 contrib/inventory_builder/inventory.py 10.0.0.1 10.0.0.2 10.0.0.4 10.0.0.5
Bizarrely,它返回以下错误:
Traceback (most recent call last):
File "contrib/inventory_builder/inventory.py", line 36, in <module>
from ruamel.yaml import YAML
ModuleNotFoundError: No module named 'ruamel'
我对Python的经验很少,所以不了解这可能会失败。我是否错误地安装了磁带库?从ruamel.yml
项目页面上的文档中,该脚本似乎正在按原样调用该库。
预先感谢
答案 0 :(得分:1)
您正在使用python 3,并希望使用python 2附带的软件包。转到python 3所在的目录,导航至Scripts并在其中使用pip安装所需的库。
答案 1 :(得分:1)
pip
设置为指向Python 2安装。要在Python 3下安装该库,请执行pip3 install ruamel.yml
。
答案 2 :(得分:1)
在我的情况下,我使用pip3 install ruamel.yaml
进行安装,并且将软件包放入/usr/local/lib/python3.9/site-packages/
中,但是计算机上的python3
二进制文件固定在Python 3.7上,因此尝试导入该模块正在发送ModuleNotFoundError
消息。
解决此问题的方法是,使用python3 -m pip install ruamel.yaml
安装模块,通过python3二进制文件运行pip,以确保其在同一版本(在本例中为3.7)上运行,并通过正确的版本号站点进行安装-包装。