Ansible修改配置后仍无法切换指定Python版本问题求助
问题核心原因
你混淆了两个完全不同的配置逻辑:
ansible_python_interpreter是Ansible用于指定远程被管理主机上执行模块用的Python解释器路径,完全不会影响控制节点本地运行Ansible本身的Python版本。- 你看到
ansible-playbook --version输出的Python版本,是你本地执行Ansible进程所用的Python版本,由你安装Ansible的环境决定,和上面的变量无关。
另外你在ansible.cfg里写的ansible python module location不是合法的配置项,不会生效,可以直接删除。
解决方法
你需要在你要使用的Python 2.7.8环境中重新安装对应版本的Ansible:
- 首先用Python 2.7.8对应的pip安装Ansible,执行命令:
/opt/Python-2.7.8/python/bin/pip install ansible==2.5.0
如果不需要严格对应2.5.0版本,也可以去掉版本号安装兼容Python 2.7的最新Ansible版本。
2. 安装完成后,直接调用该环境下的ansible-playbook即可:
/opt/Python-2.7.8/python/bin/ansible-playbook --version
此时输出的Python版本就会显示为2.7.8。
3. 如果你希望全局默认使用该版本,可将Python 2.7.8的bin路径加入环境变量PATH最前端,在~/.bashrc或~/.zshrc末尾添加:
export PATH=/opt/Python-2.7.8/python/bin:$PATH
保存后执行source ~/.bashrc(对应zsh的话执行source ~/.zshrc)生效,之后直接执行ansible-playbook就会默认使用Python 2.7环境的版本。
内容的提问来源于stack exchange,提问作者Beti
相关产品推荐
相关产品推荐

