SyntaxError: invalid syntax to repo init in the AOSP code

SyntaxError: invalid syntax to repo init in the AOSP code

我已经尝试重新初始化源代码 Ubuntu 构建机器并且它能够成功地克隆代码。

repo init -u git@github.com:xxx/xx_manifest.git -b xxx

现在我正在尝试在 VM Ubuntu 机器上重新初始化源代码。

出现如下错误:

Traceback (most recent call last):
 File "/xxx/.repo/repo/main.py", line 56, in <module>
from subcmds.version import Version
 File "/xxx/.repo/repo/subcmds/__init__.py", line 38, in <module>
['%s' % name])
 File "/xxx/.repo/repo/subcmds/upload.py", line 27, in <module>
from hooks import RepoHook
File "/xxx/.repo/repo/hooks.py", line 472
file=sys.stderr)
    ^
 SyntaxError: invalid syntax

python build machine 和 vm machine 2.7.17 中的版本相同。

arvestad/alv issue 1 中的类似错误所示,这与 运行 使用 Python 2.7 而不是 Python3

的过程一致

仔细检查您的 Python 版本:

  • 您的 Ubuntu 构建机器(repo init 工作的地方)
  • 您的 VM Ubuntu 机器(repo init 失败)

相同 error here,但错误提示您正在执行 python2 时使用的 PYTHONPATH 仅适用于 python3

我不太清楚这是怎么回事,但我遇到了同样的问题,这似乎帮我解决了。

https://source.android.com/setup/develop#installing-repo 不要用旧的,用第一个解决。

编辑:看来您还需要在系统上安装 python 3.6 才能进行这项工作。你仍然可以让 update-alternatives 指向 python 2.7,你只需要安装 3.6 或更新版本。

试试这些命令

curl https://storage.googleapis.com/git-repo-downloads/repo-1 > ~/bin/repo
chmod a+x ~/bin/repo
python3 ~/bin/repo init -u git@....

只需安装 python3 和最新的 repo。

我也遇到了这个问题,但是在 Mac OS 上。日志和你的完全一样。 肯定是 python2 导致了这个问题。 repo 尝试在 python2 环境中 运行 python3 文件。

我从回购文档中找到了这个 https://gerrit.googlesource.com/git-repo/+/refs/heads/master/docs/python-support.md

所以我更新了我的存储库(位于 depot_tools)。因为我已经安装了python3,所以现在一切正常。

希望我的经验对你有所帮助。

我刚刚遇到了同样的问题,这为我解决了:

  • 下载 repo 的最新版本: curl https://storage.googleapis.com/git-repo-downloads/repo-1 > repo
  • 更改权限以使其可执行:chmod a+x repo
  • 运行 你的 repo 初始化 python3 和你刚刚下载的“repo”:python3 repo init -u git@github.com:xxx/xx_manifest.git -b xxx

在使用以下命令安装 OpenSTLinux Yocto 层期间,我在 Ubuntu 18.04 上遇到了同样的问题:

repo init -u https://github.com/STMicroelectronics/oe-manifest.git -b refs/tags/openstlinux-5.4-dunfell-mp1-20-11-12

Returns:

Get https://gerrit.googlesource.com/git-repo/clone.bundle
Get https://gerrit.googlesource.com/git-repo
remote: Counting objects: 2, done
remote: Finding sources: 100% (117/117)
remote: Total 117 (delta 63), reused 117 (delta 63)
Receiving objects: 100% (117/117), 142.25 KiB | 11.85 MiB/s, done.
Resolving deltas: 100% (63/63), completed with 32 local objects.
From https://gerrit.googlesource.com/git-repo
   1469c28..0588f3d  main       -> origin/main
 * [new tag]         v2.11      -> v2.11
 * [new tag]         v2.11.1    -> v2.11.1
Traceback (most recent call last):
  File "/home/xxx/Distribution-Package/openstlinux-5.4-dunfell-mp1-20-11-12/.repo/repo/main.py", line 56, in <module>
    from subcmds.version import Version
  File "/home/xxx/Distribution-Package/openstlinux-5.4-dunfell-mp1-20-11-12/.repo/repo/subcmds/__init__.py", line 38, in <module>
    ['%s' % name])
  File "/home/xxx/Distribution-Package/openstlinux-5.4-dunfell-mp1-20-11-12/.repo/repo/subcmds/upload.py", line 27, in <module>
    from hooks import RepoHook
  File "/home/xxx/Distribution-Package/openstlinux-5.4-dunfell-mp1-20-11-12/.repo/repo/hooks.py", line 472
    file=sys.stderr)

使用 Python3 而不是 Python (2.7),这个问题就消失了。你可以这样做:

sudo rm /usr/bin/python
sudo ln -s /usr/bin/python3 /usr/bin/python

一个解决办法是修改/usr/bin/repo的第一行,把它从

改成
#!/usr/bin/python

#!/usr/bin/python3

这要求系统使用 Python3 而不是默认的 Python。

尝试以下命令使其 100% 有效,已尝试并建议

mkdir -p ~/.bin
PATH="${HOME}/.bin:${PATH}"
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/.bin/repo
chmod a+rx ~/.bin/repo

如果您 运行 使用的系统没有 python3,就像我的情况一样,并且您没有安装 python3 的选项,或者安装它破坏了其他部分,选项是将回购降级到使用 python2.7:

的版本
- git clone https://gerrit.googlesource.com/git-repo
- cd git-repo
- git reset --hard v1.13.11
- mkdir -p ~/.bin
- PATH="${HOME}/.bin:${PATH}"
- cp repo ~/.bin/repo
- chmod a+rx ~/.bin/repo

这将使用与 python2.7

一起使用的 repo v1.13.11