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
我已经尝试重新初始化源代码 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