SyntaxError: неверный синтаксис для инициализации репозитория в коде AOSP

Я попытался репо инициализировать исходный код машины сборки Ubuntu, и он успешно смог клонировать код.

инициализация репозитория -u [email protected]: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 одинакова на машине сборки и машине vm 2.7.17.


person GNK    schedule 08.12.2020    source источник


Ответы (8)


попробуй эти команды

curl https://storage.googleapis.com/git-repo-downloads/repo-1 > ~/bin/repo
chmod a+x ~/bin/repo
python3 ~/bin/repo init -u git@....
person skrrt    schedule 08.12.2020
comment
Добро пожаловать в StackOverflow! Вот несколько советов, которые помогут вам написать лучшие ответы: ответы, которые просто содержат фрагменты кода или команды без объяснения того, что они делают / почему / как они решат вопрос ОП, вряд ли будут приняты или получат одобрение. Лучшие ответы — те, которые подробно объясняют, как и почему они работают, шаг за шагом, с форматированием (жирный/курсив/подчеркивание/заголовки) для улучшения удобочитаемости, а также с хорошей грамматикой и орфографией (например, с заглавной буквы в каждом слове). предложение). Вы также можете отредактировать свой ответ в любое время, если хотите его улучшить :) - person Someguy123; 08.12.2020
comment
выполните следующие команды перед этим: 1. mkdir -p ~/.bin после этого запуска 2. PATH=${HOME}/.bin:${PATH} наслаждайтесь - person Ali Waqas; 31.07.2021

У меня была такая же проблема, и это решило ее для меня:

  • Скачать последнюю версию репозитория: curl https://storage.googleapis.com/git-repo-downloads/repo-1 > repo
  • Измените права, чтобы сделать его исполняемым: chmod a+x repo
  • Запустите инициализацию вашего репозитория с помощью python3 и репозитория, который вы только что скачали: python3 repo init -u [email protected]:xxx/xx_manifest.git -b xxx
person nox    schedule 10.12.2020

Я столкнулся с той же проблемой в Ubuntu 18.04 во время установки слоя OpenSTLinux Yocto с помощью следующей команды:

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

Возвращает:

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
person MTI    schedule 09.01.2021

Попробуйте команду ниже, чтобы она работала на 100%, попробовала и предложила

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

Как видно из аналогичной ошибки в arvestad/alv issue 1, это соответствует запуску процесс с Python 2.7 вместо Python3

Дважды проверьте версию Python между:

  • ваша сборочная машина Ubuntu (где работает repo init)
  • ваша машина VM Ubuntu (где repo init не работает)

Та же самая ошибка здесь, с ошибкой, предполагающей, что вы выполняете python2 с PYTHONPATH, который подходит только для python3.

person VonC    schedule 08.12.2020
comment
Спасибо за ваш ответ. да, Python одинаков на обеих машинах. - person GNK; 08.12.2020
comment
Однако должна быть разница, поскольку ошибка означает, что вы используете python2 вместо 3. Проверьте переменные среды (например, PYTHONPATH) - person VonC; 08.12.2020
comment
ничего не происходит при вводе команды echo $PYTHONPATH - person GNK; 08.12.2020

Я точно не знаю, как это работает, но у меня была такая же проблема, и, похоже, это решило ее для меня.

https://source.android.com/setup/develop#installing-repo Не используйте устаревший, используйте первый для его решения.

Изменить: кажется, вам также нужно установить python 3.6 в вашей системе, чтобы эта работа работала. У вас все еще могут быть альтернативы обновления, указывающие на python 2.7, вам просто нужно установить 3.6 или новее.

person Gabriel Stroe    schedule 08.12.2020

Просто установите python3 и последний репозиторий.

Я тоже столкнулся с проблемой, но на Mac OS. Лог точно такой же как у вас. Определенно python2 вызвал эту проблему. репо пытается запустить файлы python3 в среде python2.

Я нашел это в документах репо https://gerrit.googlesource.com/git-repo/+/refs/heads/master/docs/python-support.md

Поэтому я обновляю свой репозиторий (который находится в depot_tools). Поскольку у меня уже установлен python3, теперь все в порядке.

Надеюсь, мой опыт может вам помочь.

person Ivan J. Lee    schedule 09.12.2020

Одно из решений состоит в том, чтобы изменить первую строку /usr/bin/repo и изменить ее с

#!/usr/bin/python

to

#!/usr/bin/python3

Это просит систему использовать Python3 вместо Python по умолчанию.

person Nguyễn Minh Vũ    schedule 15.02.2021