You need to enable JavaScript to run this app. 预装Python3的Docker环境下Android repo工具运行报Python兼容类错误
优惠活动
大模型
产品
解决方案
定价
更多

预装Python3的Docker环境下Android repo工具运行报Python兼容类错误

AOSP repo初始化报错排查与修复

连续报错过程

  • 最初在容器内执行 repo init -u https://android.googlesource.com/platform/manifest 时,直接返回错误:/usr/bin/env: 'python': No such file or directory,此时容器仅配置安装了python3,没有可供调用的python命令入口。
  • 完成python解释器安装适配后,再次执行命令触发新的报错:
    repo: warning: Python 2 is no longer supported; Please upgrade to Python 3.6+.
    Traceback (most recent call last):
      File "/home/project/aosp/.repo/repo/main.py", line 56, in <module>
        from subcmds.version import Version
      File "/home/project/aosp/.repo/repo/subcmds/__init__.py", line 38, in <module>
        ['%s' % name])
      File "/home/project/aosp/.repo/repo/subcmds/upload.py", line 27, in <module>
        from hooks import RepoHook
      File "/home/project/aosp/.repo/repo/hooks.py", line 472
        file=sys.stderr)
            ^
    SyntaxError: invalid syntax
    

当前repo部署方式

容器内的repo工具通过如下命令完成下载配置:

RUN mkdir -p /android_tools \
&& curl https://storage.googleapis.com/git-repo-downloads/repo > /android_tools/repo \
&& chmod a+x /android_tools/repo

问题根因

  • 目前公开渠道拉取到的最新版repo脚本已经完全放弃对Python2的支持,运行要求最低为Python3.6版本。如果安装python解释器时,误把python命令的软链接指向了旧版Python2,repo就会调用Python2解释器加载内置的纯Python3语法代码,直接触发语法解析失败的报错。
  • 之前补装python解释器的操作只解决了“找不到python命令入口”的问题,没有对齐repo要求的运行版本,才会出现连锁报错。

修复操作指引

  • 修正python命令的软链接指向,将其关联到已安装的python3可执行文件,示例命令:ln -sf $(which python3) /usr/bin/python
  • 确保容器内Python版本不低于3.6,满足repo的最低运行要求
  • 拉取repo安装脚本时,选择匹配Python3运行环境的稳定版本拉取,避免直接拉取未做兼容适配的主干开发分支代码

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.11 10:57:04