ansible --version 的不同输出
Different output from ansible --version
我正在尝试在我的 Raspberry Pi 4(Raspberry Pi OS 64 位)上设置和配置 ansible 2.9
如果我 运行 ansible --version 作为普通用户,我得到这个:
ansible --version
ansible [core 2.11.4]
config file = /etc/ansible/ansible.cfg
configured module search path = ['/home/stan/.ansible/plugins/modules', /usr/share/ansible/plugins/modules']
ansible python module location = /home/stan/.local/lib/python3.7/site-packages/ansible
ansible collection location = /home/stan/.ansible/collections:/usr/share/ansible/collections
executable location = /usr/local/bin/ansible
python version = 3.7.3 (default, Jan 22 2021, 20:04:44) [GCC 8.3.0]
jinja version = 2.10
libyaml = True
但是当我 运行 使用与 root 相同的命令时,我得到这个:
ansible --version
ansible 2.9.25.post0
config file = /etc/ansible/ansible.cfg
configured module search path = ['/root/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
ansible python module location = /usr/local/lib/python3.7/dist-packages/ansible
executable location = /usr/local/bin/ansible
python version = 3.7.3 (default, Jan 22 2021, 20:04:44) [GCC 8.3.0]
顺便说一句:Whosebug 被迫将上面的格式格式化为代码,但它不是代码,它是命令输出。
为什么根据运行执行命令的用户不同,我会得到两个不同的结果?更大的问题是安装哪个版本 2.9.25(root)或 2.11.4(用户)?
您安装了两个不同的版本。一个是 'system'(在 /usr/local/lib/python3.7/dist-packages/ansible
中),第二个是在用户主目录中:/home/stan/.local/lib/python3.7/site-packages/ansible
/usr/local/bin中的'system binary'只是通过Python的'import'语句加载入口点,因此,您看到的实际ansible版本非常依赖于您的导入路径配置。
模块加载的顺序取决于 sys.path
个变量(python)。
>>> import sys
>>> sys.path
sys.path
的来源是一个非常棘手的问题。 (参见 What sets up sys.path with Python, and when?),但您可以从 .profile
和 PYTHONPATH
环境变量开始。
我正在尝试在我的 Raspberry Pi 4(Raspberry Pi OS 64 位)上设置和配置 ansible 2.9 如果我 运行 ansible --version 作为普通用户,我得到这个:
ansible --version
ansible [core 2.11.4]
config file = /etc/ansible/ansible.cfg
configured module search path = ['/home/stan/.ansible/plugins/modules', /usr/share/ansible/plugins/modules']
ansible python module location = /home/stan/.local/lib/python3.7/site-packages/ansible
ansible collection location = /home/stan/.ansible/collections:/usr/share/ansible/collections
executable location = /usr/local/bin/ansible
python version = 3.7.3 (default, Jan 22 2021, 20:04:44) [GCC 8.3.0]
jinja version = 2.10
libyaml = True
但是当我 运行 使用与 root 相同的命令时,我得到这个:
ansible --version
ansible 2.9.25.post0
config file = /etc/ansible/ansible.cfg
configured module search path = ['/root/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
ansible python module location = /usr/local/lib/python3.7/dist-packages/ansible
executable location = /usr/local/bin/ansible
python version = 3.7.3 (default, Jan 22 2021, 20:04:44) [GCC 8.3.0]
顺便说一句:Whosebug 被迫将上面的格式格式化为代码,但它不是代码,它是命令输出。
为什么根据运行执行命令的用户不同,我会得到两个不同的结果?更大的问题是安装哪个版本 2.9.25(root)或 2.11.4(用户)?
您安装了两个不同的版本。一个是 'system'(在 /usr/local/lib/python3.7/dist-packages/ansible
中),第二个是在用户主目录中:/home/stan/.local/lib/python3.7/site-packages/ansible
/usr/local/bin中的'system binary'只是通过Python的'import'语句加载入口点,因此,您看到的实际ansible版本非常依赖于您的导入路径配置。
模块加载的顺序取决于 sys.path
个变量(python)。
>>> import sys
>>> sys.path
sys.path
的来源是一个非常棘手的问题。 (参见 What sets up sys.path with Python, and when?),但您可以从 .profile
和 PYTHONPATH
环境变量开始。