【问题标题】:how to support ansible-playbook from python3如何从 python3 支持 ansible-playbook
【发布时间】:2020-12-01 09:53:29
【问题描述】:

我们转而使用 python3 而不是 python2 但是当我们尝试运行ansible-playbook VIA python3 然后我们得到

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

从 pip 列表中可以看到,ansible 已经安装

pip list | grep ansible
ansible                            2.9.9

但不是来自 pip3

 pip3 list | grep ansible  ( no output )

所以一开始我们认为2.9.9 版本安装的ansible 也将支持python3(基于https://docs.ansible.com/ansible/latest/reference_appendices/python_3_support.html

但似乎不是这样

所以有什么建议如何运行python3 /usr/bin/ansible-playbook

不知道我说的对不对

但也许我们需要安装以下 pkgs 来支持 python3

-rw-r--r--  1 root root  5836841 Dec  1 10:07 ansible-base-2.10.3.tar.gz
-rw-r--r--  1 root root   125774 Dec  1 10:07 Jinja2-2.11.2-py2.py3-none-any.whl
-rw-r--r--  1 root root   269377 Dec  1 10:07 PyYAML-5.3.1.tar.gz
-rw-r--r--  1 root root  2606314 Dec  1 10:07 cryptography-3.2.1-cp35-abi3-manylinux2010_x86_64.whl
-rw-r--r--  1 root root    35858 Dec  1 10:07 packaging-20.7-py2.py3-none-any.whl
-rw-r--r--  1 root root    32690 Dec  1 10:07 MarkupSafe-1.1.1-cp38-cp38-manylinux1_x86_64.whl
-rw-r--r--  1 root root   411052 Dec  1 10:07 cffi-1.14.4-cp38-cp38-manylinux1_x86_64.whl
-rw-r--r--  1 root root    10963 Dec  1 10:07 six-1.15.0-py2.py3-none-any.whl
-rw-r--r--  1 root root    67842 Dec  1 10:07 pyparsing-2.4.7-py2.py3-none-any.whl
-rw-r--r--  1 root root   112041 Dec  1 10:07 pycparser-2.20-py2.py3-none-any.whl

我只是执行以下操作并 pip 下载所有依赖项的 ansible

 python3 -m pip download ansible

【问题讨论】:

  • 使用pip3或者更好的python3 -m pip来安装ansible。
  • 你的意思是下载适合python3的ansible为python3 -m pip download ansible
  • 请看我的更新
  • 不,我的意思是installdownload 只会下载文件。此外,您应该考虑卸载 Python 2 ansible 或使用虚拟环境来防止版本混乱。
  • 是的,但我们需要离线安装,我们没有网络连接

标签: python python-3.x linux ansible


【解决方案1】:

如果你的系统上有多个版本的 Python,你可以使用 python 环境:

更新服务器:

sudo apt-get update -y

为 python3 安装 pip:

sudo apt install python3-pip -y

强制升级pip3:

sudo pip3 install --upgrade pip

安装虚拟环境python3:

python3 -m pip install virtualenv

创建虚拟环境python3:

python3 -m venv /tmp/Myenv

使用隔离虚拟环境python3:

source /tmp/Myenv/bin/activate

在 venv python3 中安装 ansible:

pip3 安装 ansible

将 ansible 与 venv python3 一起使用:

source /tmp/Myenv/bin/activate

ansible-playbook [命令]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-09-18
    • 1970-01-01
    • 2021-10-14
    • 1970-01-01
    • 2023-01-11
    • 1970-01-01
    • 2018-08-31
    • 1970-01-01
    相关资源
    最近更新 更多