克隆SPF 12.1 SDK时遭遇SyntaxError语法错误求助
解决SPF 12.1 SDK克隆时repo init的SyntaxError问题
问题场景
执行命令repo init -u https://android.googlesource.com/platform/manifest -b master克隆SPF 12.1 SDK时,获取https://gerrit.googlesource.com/git-repo/clone.bundle阶段触发报错:
文件"/data/shubham/qca-networking-2022-spf-12-1_qca_oem-r12.1_00010.3-24c5c8c657389e2af3f7af24c691f1ffb82ab86b/.repo/repo/main.py"第79行,file=sys.stderr),提示SyntaxError: invalid syntax。
核心原因
新版repo工具已停止支持Python 2,若系统默认Python版本为2.x,会导致Python2解析Python3语法的main.py文件时出现语法错误。
解决方案
1. 临时指定Python3执行repo
直接修改命令,强制用Python3运行repo:
python3 $(which repo) init -u https://android.googlesource.com/platform/manifest -b master
2. 设置Python3为系统默认版本
- 先确认Python3已安装:
python3 --version
- 临时生效(重启终端后失效):
alias python=python3
- 永久生效(编辑bash配置文件):
echo "alias python=python3" >> ~/.bashrc source ~/.bashrc
之后直接执行原repo命令即可。
3. 重新安装适配Python3的repo工具
删除旧的repo目录,重新下载最新版repo脚本:
rm -rf .repo/repo curl https://storage.googleapis.com/git-repo-downloads/repo > repo chmod a+x repo
然后执行初始化命令:
./repo init -u https://android.googlesource.com/platform/manifest -b master
内容的提问来源于stack exchange,提问作者Shubham Kumar
相关产品推荐
相关产品推荐

