获得“ImportError:No Module named yaml”错误

22

电脑: MacBook Pro 2012年中期,运行El Capitan 10.11.4操作系统

Python版本为2.7.10

我一直在尝试从源码安装ansible,并且我已经按照ansible文档上的步骤运行了以下两个命令:

git clone git://github.com/ansible/ansible.git --recursive
cd ./ansible

然后运行了这个

source ./hacking/env-setup

我已经安装了这些软件包

sudo pip install paramiko PyYAML Jinja2 httplib2 six

然而,如果我在终端中输入ansible尝试运行它,我会收到以下错误。

Traceback (most recent call last):
File "/Users/[myusr]/rock/ansible/bin/ansible", line 81, in <module>
from ansible.cli.adhoc import AdHocCLI as mycli
File "/Users/[myusr]/rock/ansible/lib/ansible/cli/__init__.py", line 27, in <module>
import yaml
ImportError: No module named yaml

在这里应该做什么?

7个回答

44

您是否已安装yaml模块?如果没有,请尝试使用以下命令安装yaml:

sudo pip install pyyaml

ansible (2.2.0) cffi (1.7.0) cryptography (1.4) Django (1.9.6) enum34 (1.1.6) Flask (0.10.1) httplib2 (0.9.2) idna (2.1) ipaddress (1.0.16) itsdangerous (0.24) Jinja2 (2.8) MarkupSafe (0.23) paramiko (2.0.1) pip (1.5.6) pyasn1 (0.1.9) pycparser (2.14) pycrypto (2.6.1) PyYAML (3.11) setuptools (23.1.0) six (1.10.0) vboxapi (1.0) Werkzeug (0.11.2) wsgiref (0.1.2) yolk3k (0.9) (来自 pip 列表) - antong
那么yaml模块的安装目录可能不在sys.path中。您可以通过导入sys并打印sys.path来检查它。 - bigdata2

9

我有过相同的问题。使用@FranMowinckel的答案解决了这个问题。

首先,我输入了:

pip --version 

它输出了Python 3。但是,当我尝试:

sudo python -m pip install pyyaml

我收到了一个错误信息:

错误:找不到pip模块

最终运行的命令是:

sudo easy_install pip

一切都运行良好。返回并运行:

sudo python -m pip install pyyaml

你可能需要同时运行其他模块。

现在,你应该能够成功运行最初失败的命令了。


4

对于Python 3.6,您可以使用以下方式进行安装:

pip3 install pyyaml

如果在导入过程中出现问题,请执行以下操作:
pip3 uninstall pyyaml

然后重新安装它:

pip3 install pyyaml

3

@bigdata2的答案是正确的,但也可能会出现与Python 3冲突的情况。因此,请检查pip版本(pip --version),如果输出为Python 3,则应执行以下操作:

sudo python -m pip install pyyaml

因此,它会安装到与Python相同的版本中。


1
我遇到了这个问题,因为我使用了以下方式进行安装。
sudo pip install pyyaml --upgrade

替代

sudo -H pip install pyyaml --upgrade

卸载并重新安装pyyaml解决了我的问题。

0

这应该可以工作:

sudo pip install pyyaml    

0

试试这个

pip install ruamel.yaml

3
你好,欢迎来到 stackoverflow。你能解释一下为什么这个命令可以回答这个问题吗? - Guillaume S

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接