You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

源码方式安装Ansible后执行ansible命令提示找不到python报错

问题根因

这个报错和env-setup脚本执行是否成功没有直接关系:source ./hacking/env-setup返回done仅代表源码目录的路径、Ansible相关环境变量已经加载完成,不会自动处理Python解释器的匹配问题。
报错的核心原因是:Ansible源码包内的可执行脚本头部默认指定查找名为python的解释器,但当前主流Linux发行版(Ubuntu 20.04+、Debian 11+、RHEL/CentOS 9+等)默认仅预装python3可执行文件,没有配置python命令指向Python3的软链接,因此/usr/bin/env无法找到对应程序触发报错。

排查步骤
  • 执行which python3确认系统已安装Python3,正常会返回类似/usr/bin/python3的路径,无返回则先通过系统包管理器安装Python3
  • 执行ls /usr/bin/python确认该路径下确实无python可执行文件,和报错信息匹配
  • 打开Ansible源码目录下bin/ansible文件,确认第一行shebang配置为#!/usr/bin/env python,即可定位是解释器名称不匹配问题
修复方案

按需选择以下任意一种方案即可:

  • 系统包管理器自动配置(推荐,不破坏系统原有文件依赖)
    • Debian/Ubuntu系执行:apt update && apt install -y python-is-python3,安装完成后会自动创建python到python3的软链接
    • RHEL/CentOS/Fedora系执行:alternatives --set python /usr/bin/python3,通过系统alternatives机制配置命令映射
  • 手动创建软链接
    执行ln -s /usr/bin/python3 /usr/local/bin/python,将软链接放在/usr/local/bin目录下,既不会覆盖系统包管理维护的文件,也能保证命令全局生效
  • 临时指定解释器运行(仅适合单次测试使用)
    执行命令时显式调用Python3运行Ansible脚本,格式为python3 <你的ansible命令>,例如python3 $(which ansible) --version

修复完成后重新执行ansible --version,能正常输出版本号、Python路径、配置文件路径即为修复成功。


内容的提问来源于stack exchange,提问作者qiu kevin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 14:15:32