<p>要更改托管主机上使用的python解释器,可以根据您的问题使用额外的或inventory变量。这不会改变用于在本地执行ansible的python版本,这在另一个答案中提到。</p>
<p>要确认您在托管主机上使用的是不同的解释器,您将需要更详细的输出(至少3'v,<code>-vvv</code>)。在shell命令中运行<code>python --version</code>只会显示系统的默认python版本。</p>
<p><strong>示例</strong></p>
<p>Python2解释器:</p>
<pre><code>$ ansible localhost -a 'python --version' -e 'ansible_python_interpreter=/usr/bin/python2' -vvv
ansible 2.8.1
<snip>
python version = 3.7.3 (default, May 11 2019, 00:38:04) [GCC 9.1.1 20190503 (Red Hat 9.1.1-1)]
<snip>
'/bin/sh -c '"'"'/usr/bin/python2 /home/mattp/.ansible/tmp/ansible-tmp-1564023345.0848873-106174541151316/AnsiballZ_command.py && sleep 0'"'"''
<snip>
localhost | CHANGED | rc=0 >>
Python 2.7.16
</code></pre>
<p>Python3解释器:</p>
<pre><code>$ ansible localhost -a 'python --version' -e 'ansible_python_interpreter=/usr/bin/python3' -vvv
ansible 2.8.1
<snip>
python version = 3.7.3 (default, May 11 2019, 00:38:04) [GCC 9.1.1 20190503 (Red Hat 9.1.1-1)]
<snip>
'/bin/sh -c '"'"'/usr/bin/python3 /home/mattp/.ansible/tmp/ansible-tmp-1564023350.3869421-223113472194736/AnsiballZ_command.py && sleep 0'"'"''
<snip>
localhost | CHANGED | rc=0 >>
Python 2.7.16
</code></pre>
<p><strong>要点</strong></p>
<ul>
<li>用于在本地运行Ansible的python版本保持不变</li>
<li>系统默认的python版本保持不变</li>
<li>用于远程执行ansibe命令模块的python版本(即python解释器)已从版本2更改为3</li>
</ul>