ModuleNotFoundError:没有名为“ ruamel”的模块

时间:2019-04-01 11:54:19

标签: python

我使用的是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 list

如果我运行pip show 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项目页面上的文档中,该脚本似乎正在按原样调用该库。

预先感谢

3 个答案:

答案 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)上运行,并通过正确的版本号站点进行安装-包装。