首页 > 解决方案 > ImportError:通过 PIP 安装 Ansible 2.9 后没有名为 ansible 的模块

问题描述

想知道是否有人遇到过我收到的同样问题:

Traceback (most recent call last):
  File "/usr/local/ansible2.9/bin/ansible-playbook", line 34, in <module>
    from ansible import context
ImportError: No module named ansible

所以我们在我们的服务器上安装了 2 个 ansible 版本,并希望在 ansible 2.9 中运行一些作业,我们为每个版本创建了单独的环境。所以我激活了 ansible 2.9 env 然后继续运行通常的命令“ansible-playbook playbook.yml ....”但是我们得到了这个错误。

该软件包是通过 pip 安装的,请参见下文:

[root@jenkins local]# virtualenv-2.7 --no-site-packages /usr/local/ansible2.9
New python executable in /usr/local/ansible2.9/bin/python2.7
Also creating executable in /usr/local/ansible2.9/bin/python
Installing setuptools, pip, wheel...done.
[root@jenkins local]# source /usr/local/ansible2.9/bin/activate
(ansible2.9) [root@jenkins local]# pip2.7 install git+git://github.com/ansible/ansible.git@stable-2.9

请注意,所有必需的库都已安装。还安装了 Python 2.7。我正在使用 RHEL 6。Ansible 2.7 环境运行良好,但是这个最近安装的版本抛出“ImportError: No module named ansible”

知道如何解决这个问题吗?谢谢!

标签: pythonpipansiblerhel6

解决方案


找到了解决方案。似乎 Ansible 2.9 的权限设置不正确。使用以下命令修复它:

chmod -R 644 /usr/local/ansible2.9/ 查找 /usr/local/ansible2.9/ -type d -print0 |xargs -0 chmod 755

另外,对于 Ansible 2.9 和 openstack,openstacksdk 是不够的,还需要安装“future”库。

命令:pip install ansible openstacksdk future 来源:问题 - https://github.com/ansible/ansible/issues/68616 修复 - https://github.com/atodorov/lorax/commit/5103e0b585564c62e3007b68d945fc56a542c474


推荐阅读