首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Fedora 30上获得Ansible以查看模块

如何在Fedora 30上获得Ansible以查看模块
EN

Stack Overflow用户
提问于 2019-08-05 23:21:43
回答 1查看 344关注 0票数 0

我在Fedora 30上使用dnf安装了Anble2.8.2。我有一个可插入的插件,它需要一个库。使用pip3 install,我安装了所需的库。

当我直接运行ansible-playbook时,我会看到该模块的ModuleNotFoundError

但是如果我运行python3 /usr/bin/ansible-playbook,就会找到模块。

如何让dnf安装的Ansible来查看这个库?

编辑:进一步的信息:从dnf安装的主Ansible脚本为/usr/bin/python3 -s提供了一个shebang。如果我删除-s,这个问题就解决了。

  1. 回购维护人员在添加这个-s标志时所寻求的好处是什么?
  2. 是否有理由要求回购维护人员省略标志?
  3. 如何让pip3将我需要的库安装到一个目录中,以便在-s标志生效时看到它?

编辑:,这是ansible --version的输出,谢谢你的关心。

代码语言:javascript
复制
ansible 2.8.2
  config file = /home/jdashton/proj/ansible-ccharacter/ansible.cfg
  configured module search path = ['/home/jdashton/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/lib/python3.7/site-packages/ansible
  executable location = /usr/bin/ansible
  python version = 3.7.4 (default, Jul  9 2019, 16:32:37) [GCC 9.1.1 20190503 (Red Hat 9.1.1-1)]

这与建议的重复问题不同,因为这个问题描述了在localhost上运行的“远程”任务,在这种情况下,Ansible使用默认的“远程”python解释器。在这个问题中,库是从本地插件调用的,在Ansible自己的python过程中。在-s脚本顶部的shebang行中的/usr/bin/ansible标志阻止Ansible看到一些本地库。

编辑:按照@zigarn的建议,我尝试删除库并将其重新安装为root。这导致库被重新安装到与前面相同的目录/usr/local/lib/...中。有办法让pip3安装到系统库中吗?

下面是我尝试的命令:

代码语言:javascript
复制
# pip3 uninstall tenacity
Uninstalling tenacity-5.0.4:
  Would remove:
    /usr/local/lib/python3.7/site-packages/tenacity-5.0.4.dist-info/*
    /usr/local/lib/python3.7/site-packages/tenacity/*
Proceed (y/n)? y
  Successfully uninstalled tenacity-5.0.4
# pip3 install tenacity
Collecting tenacity
  Using cached https://files.pythonhosted.org/packages/6a/93/dfcf5b1b46ab29196274b78dcba69fab5e54b6dc303a7eed90a79194d277/tenacity-5.0.4-py2.py3-none-any.whl
Requirement already satisfied: six>=1.9.0 in /usr/lib/python3.7/site-packages (from tenacity) (1.12.0)
Installing collected packages: tenacity
Successfully installed tenacity-5.0.4
# pip show tenacity
Name: tenacity
Version: 5.0.4
Summary: Retry code until it succeeeds
Home-page: https://github.com/jd/tenacity
Author: Julien Danjou
Author-email: julien@danjou.info
License: Apache 2.0
Location: /usr/local/lib/python3.7/site-packages
Requires: six
Required-by: 

另外,为了清楚起见,以下是Ansible安装的源代码:

代码语言:javascript
复制
# dnf list ansible
Last metadata expiration check: 0:09:48 ago on Mon 12 Aug 2019 11:12:58 AM EDT.
Installed Packages
ansible.noarch                                               2.8.2-1.fc30                                               @updates
EN

回答 1

Stack Overflow用户

发布于 2019-08-06 15:21:14

根据文档,python的-s选项是"不要将用户站点包目录添加到sys.path。“。

因此,我猜想您将pip3 install作为您的用户而不是root,因此库安装在您的用户端而不是系统范围内。

尝试用pip3作为root重新安装这个库,它应该是可以的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57367112

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档